我正在使用 ReplayKit 的 RPScreenRecorder.shared().startCapture
方法来录制屏幕和麦克风,但我遇到了一个问题。如果我在 ScreenRecording 时播放 AVPlayer,麦克风将停止录制音频。以下是两种情况。首先一切正常,但第二个录音不起作用。
启动AVPlayer,然后启动screenRecording,AVPlayer的Audio停止,我的屏幕和麦克风开始录音
开始录制屏幕并正常工作。然后我启动 AVPlayer,当 AVPlayer 播放音频时,录音停止
最佳答案
经过大量挖掘后,我找到了解决方案。默认 AVFoundation
允许一次使用麦克风或扬声器,ReplayKit 与 AVPlayer 内容不兼容。因此,如果我们想同时使用它们,我们需要将 AVAudioSession
的类别设置为 AVAudioSessionCategoryMultiRoute
。
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryMultiRoute)
} catch let error as NSError {
print(error)
}
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch let error as NSError {
print(error)
}
关于如果我在录音期间播放 AVPlayer,iOS ReplayKit 停止录音麦克风,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54235609/