Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果在录制过程中播放AVPlayer,iOS ReplayKit将停止录制麦克风_Ios_Swift_Replaykit - Fatal编程技术网

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

如果在录制过程中播放AVPlayer,iOS ReplayKit将停止录制麦克风,ios,swift,replaykit,Ios,Swift,Replaykit,我正在使用ReplayKit的RPScreenRecorder.shared().startCapture方法录制屏幕和麦克风,但我面临一个问题。如果在屏幕录制时播放AVPlayer,麦克风将停止录制音频。下面是两种情况。一开始一切正常,但第二次录音不正常 启动AVPlayer,然后开始屏幕录制,AVPlayer的音频停止,我的屏幕和麦克风开始录制 开始录屏,工作正常。然后我启动AVPlayer,当AVPlayer播放音频时,语音录制停止 我认为这是一种制度限制 正如苹果官方文件所写的那样 Re

我正在使用ReplayKit的
RPScreenRecorder.shared().startCapture
方法录制屏幕和麦克风,但我面临一个问题。如果在屏幕录制时播放AVPlayer,麦克风将停止录制音频。下面是两种情况。一开始一切正常,但第二次录音不正常

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

  • 开始录屏,工作正常。然后我启动AVPlayer,当AVPlayer播放音频时,语音录制停止


  • 我认为这是一种制度限制 正如苹果官方文件所写的那样

    ReplayKit与AVPlayer内容不兼容


    你可以详细阅读

    在挖掘了很多之后,我找到了一个解决方案。默认值
    AVFoundation
    允许一次使用麦克风或扬声器,并且ReplayKit与AVPlayer内容不兼容。因此,如果我们想同时使用这两种方法,我们需要将
    AVAudioSession
    的类别设置为
    avaudiosessioncategorymultiproute

    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播放音频。就像我开始用replyKit录音一样。它使AVPlayer静音并开始录制。我只想对AVPlayer执行同样的操作,如果AVPlayer在启动屏幕录制后播放要使AVPlayer静音,可以在开始录制前使用其IsMute属性。我不知道它是否有效,但值得一试。但我找到了一个解决方案,当我们从堆栈中删除应用程序时,从麦克风捕获音频不起作用,知道吗?从堆栈中删除应用程序是什么意思?,您是否退出应用程序?我的意思是,一旦我关闭应用程序,屏幕录制工作正常,但音频录制停止。但在我第一次安装应用程序时,一切都正常。您是否找到了适用于此场景的有效解决方案?因为我使用的是您在Git上创建的同一个存储库:好的,当您关闭应用程序时,如何记录屏幕?