15

添加麦克风音频输入AVCaptureSession似乎禁用UIImpactFeedbackGenerator.

let audioDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeAudio)
let audioDeviceInput = try AVCaptureDeviceInput(device: audioDevice)
if self.session.canAddInput(audioDeviceInput) {
   self.session.addInput(audioDeviceInput)
}

移除音频设备后,将恢复反馈。

这是正常行为吗?有没有解决的办法?

我注意到视频模式下的股票 iOS 相机应用程序和长按缩略图似乎仍然可以使反馈起作用。那么,一定有办法解决这个问题吗?

4

3 回答 3

14

这似乎是一种故意行为。

您可以停止捕获会话,播放触觉,然后恢复捕获会话,这似乎是相机应用程序正在执行的操作,因为当您偷看相机馈送时,会转到捕获的最后一帧的模糊静态图像。例如:

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()
}
于 2017-10-15T15:52:36.767 回答
0

尝试开启setAllowHapticsAndSystemSoundsDuringRecordingAVAudioSession

于 2021-07-30T13:01:03.427 回答
0

音频会话(通过 AVAudioPlayer、AVCaptureMovieFileOutput 等),则手机不会振动。

我不确定,但 99% 不能使用 AVCaptureMovieFileOutput。请更多信息: https ://developer.apple.com/documentation/audiotoolbox/1405202-audioservicesplayalertsound

于 2018-05-29T10:21:49.543 回答