如果我在录音期间播放 AVPlayer,iOS ReplayKit 停止录音麦克风

标签 ios swift replaykit

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

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

  2. 开始录制屏幕并正常工作。然后我启动 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/

相关文章:

ios - 在 UITableView 和 NSArray 中使用多节

swift - 我如何在 SpriteKit 中通过名称获取节点?

ios - RPPreviewViewController 的共享扩展因 ReplayKit 而失效

iphone - iOS5 ARC 应用程序 : __NSAutoreleaseNoPool(): of class NSCFNumber autoreleased with no pool in place - just leaking

ios - swift4 : how to check if user logged befor tab bar item clicked

ios - Facebook iOS SDK 3.1.1 安装问题

ios - 为什么 rightRevealToggle 在 'SWRevealViewController' 中什么都不做?

xcode - Xcode(swift) 中的碰撞检测不起作用,我正在尝试设置玩家无法跨越的边界

ios - 如何在 iOS 10 beta 中测试 ReplayKit 广播?

ios - ReplayKit 的 RPSystemBroadcastPickerView 不显示 preferredExtension