将麦克风音频输入添加到AVCaptureSession似乎禁用了UIImpactFeedbackGenerator.
let audioDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAudio) let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice) if self.session.canAddInput(audioDeviceInput) { self.session.addInput(audioDeviceInput) }
移除音频设备后,将恢复反馈.
这是正常的行为吗?有没有解决的办法?
解决方法
这似乎是一种故意行为.
您可以停止捕获会话,播放触觉,然后恢复捕获会话,这似乎是相机应用程序正在执行的操作,就像您偷看相机提要进入捕获的最后一帧的模糊静态图像一样.例如:
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() }