我正在尝试让我的iPhone在录音时振动。
我已经尝试过:
UInt32 category = kAudioSessionCategory_PlayAndRecord;
status |= AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(category), &category);
UInt32 allowMixing = true;
status |= AudioSessionSetProperty (
kAudioSessionProperty_OverrideCategoryMixWithOthers, // 1
sizeof (allowMixing), // 2
&allowMixing // 3
);
status |= AudioSessionSetProperty(
kAudioSessionProperty_OtherMixableAudioShouldDuck, // 1
sizeof (allowMixing), // 2
&allowMixing // 3
);
如建议here。然后,通过调用
振动设备。AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
但不起作用。但是它不会振动。它记录的很好,如果我在停止记录之前先打个振动,则停止后再振动。
显然是个错误,有人知道解决方法吗?
我的猜测是,在录音过程中振动功能受到了特别的抑制。在录制音频时,您可以通过做通常会使电话振动的其他操作(例如,在静音开关打开的情况下向自己发送短信)来轻松测试这一点-我敢打赌,它也不会因此振动。
最后!从iOS 13开始,AVAudioSession上有一个新属性
let _ = try? AVAudioSession.sharedInstance().setCategory(.playAndRecord)
if #available(iOS 13.0, *) {
let _ = try? AVAudioSession.sharedInstance().setAllowHapticsAndSystemSoundsDuringRecording(true)
}