UIImpactFeedbackGenerator不工作当音频设备添加到AVCaptureSession
问题描述:
添加麦克风音频输入AVCaptureSession似乎禁用UIImpactFeedbackGenerator。UIImpactFeedbackGenerator不工作当音频设备添加到AVCaptureSession
let audioDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAudio)
let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice)
if self.session.canAddInput(audioDeviceInput) {
self.session.addInput(audioDeviceInput)
}
一旦音频设备被删除,反馈将恢复。
这是正常的行为吗?有没有解决的办法?
我注意到股票iOS相机应用程序在视频模式和长按缩略图似乎仍然使反馈工作。所以必须有解决方法?
答
这似乎是一种有意的行为。
您可以停止捕获会话,播放触觉,然后恢复捕获会话,这似乎是相机应用正在做的事情,例如,当您偷看相机馈送时,会转到捕获的最后一帧的模糊静态图像。例如:
self.session.stopRunning()
// Play haptic
UINotificationFeedbackGenerator().notificationOccurred(.warning)
// Not completely sure if this delay is needed but you might need to wait until the run loop after the haptic plays to resume capture session
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1)
{
self.session.startRunning()
}