使用iOS ReplayKit Broadcast Extension录制整个系统UI的扬声器出现问题。
苹果词:扬声器 =扬声器,接收器 =将手机放在耳边。
根据Apple标准,您使用AVAudioSession
声明音频会话行为。在我们的案例中,我们正在进行的视频聊天应在没有耳机的情况下默认为扬声器(请考虑支持会话在聊天时记录整个UI)。
如果我们未使用defaultToSpeaker
设置类别,则默认行为是使用接收者。
AVAudioSession.sharedInstance().setCategory(
.playAndRecord,
mode: .videoChat,
policy: .default,
options: [.defaultToSpeaker, .mixWithOthers]
但是,当我这样做时,蓝牙耳机会停止工作。如果我开始使用扬声器,然后连接AirPods,则广播扩展将继续使用扬声器。 (有线耳机始终可用)
如果我不setCategory
,则有一些默认会话,但默认为仅接收者。
这似乎是Apple的错误。这实际上意味着我们必须选择支持蓝牙耳机或来断开耳机的连接。
我已经尝试使用AVAudioSession.sharedInstance().overrideOutputAudioPort(.speaker)
进行手动操作,但是在广播扩展的上下文中,此调用似乎无济于事。
有人找到解决方法吗?
编辑:苹果的文件错误:FB6485225(openradar尚无法处理反馈助手)