2017-10-14 48 views
3

添加麥克風音頻輸入AVCaptureSession似乎禁用UIImpactFeedbackGeneratorUIImpactFeedbackGenerator不工作當音頻設備添加到AVCaptureSession

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

一旦音頻設備被刪除,反饋將恢復。

這是正常的行爲嗎?有沒有解決的辦法?

我注意到股票iOS相機應用程序在視頻模式和長按縮略圖似乎仍然使反饋工作。所以必須有解決方法?

回答

3

這似乎是一種有意的行爲。

您可以停止捕獲會話,播放觸覺,然後恢復捕獲會話,這似乎是相機應用正在做的事情,例如,當您偷看相機饋送時,會轉到捕獲的最後一幀的模糊靜態圖像。例如:

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() 
}