我可以使用ReplayKit录制麦克风和系统音频吗?

时间:2017-10-30 14:45:18

标签: ios avfoundation avplayer xcode9 replaykit

网上没有太多关于此的文档,因为这是一项奇怪的任务。我正在尝试使用ReplayKit同时录制我的屏幕,内置麦克风和系统音频。

以下是我现在正在录制屏幕的方式:

    if([self.screenRecorder isAvailable]){
        [self.screenRecorder setMicrophoneEnabled:YES];
        [self.screenRecorder startRecordingWithHandler:nil];
    }

运行此选项时,系统会提示用户使用麦克风录制,或者不使用麦克风录制。我可以两个都做吗?有解决方法吗?如果我选择麦克风,当我的应用播放声音时,麦克风将被禁用。

如果有人可以提出一个不涉及replaykit的可能解决方案,那也将非常感激!

由于

2 个答案:

答案 0 :(得分:1)

是的,可以,你可以使用AVAudioEngine提供手动渲染模式,两个playerNode(音频app,音频麦克风)进入mixerNode并渲染。

答案 1 :(得分:-1)

因此,在查看此内容之后,您也可以使用AVAudioSession API执行此操作:

let audioSession = AVAudioSession.sharedInstance()
try! audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord, with: AVAudioSessionCategoryOptions.mixWithOthers)