如果我在录制过程中播放AVPlayer,则iOS ReplayKit会停止录制麦克风

时间:2019-01-17 12:08:34

标签: ios swift replaykit

我正在使用ReplayKit的RPScreenRecorder.shared().startCapture方法来记录屏幕和麦克风,但是我遇到了一个问题。如果在ScreenRecording的同时播放AVPlayer,则麦克风会停止录制音频。以下是两种情况。首先,一切正常,但是第二声录音不起作用。

  1. 启动AVPlayer,然后开始screenRecording,AVPlayer的音频停止,我的屏幕和麦克风开始录制

  2. 开始屏幕录制并正常工作。然后我启动AVPlayer,当AVPlayer播放音频时,语音记录就会停止

2 个答案:

答案 0 :(得分:1)

大量研究之后,我找到了解决方案。默认AVFoundation允许一次使用麦克风或扬声器,并且ReplayKit与AVPlayer内容不兼容。因此,如果我们想一次使用两者,则需要将AVAudioSession的Category设置为AVAudioSessionCategoryAmbient

do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient)
} catch let error as NSError {
    print(error)
}

do {
    try AVAudioSession.sharedInstance().setActive(true)
} catch let error as NSError {
    print(error)
} 

答案 1 :(得分:0)

我认为这是系统限制 与苹果官方文件中的一样

  

ReplayKit与AVPlayer内容不兼容。

您可以阅读详细信息here