在AVAudioSession上设置playAndRecord类别会导致路由更改

问题描述

我有一个AVAudioSession,它始终在录制,并且偶尔播放音频。我想将其与当前正在播放的音频(Apple Music,Spotify)混合使用,并且仅在需要播放某些内容时才使用。在大多数情况下,用户将使用耳机(allowBluetoothA2DP)。

当我使用playAndRecord激活会话时,它会导致其他音频丢失几百毫秒:

try! audioSession.setCategory(.playAndRecord,mode: .default,options: [.allowBluetoothA2DP,.mixWithOthers])
try! audioSession.setActive(true)

这似乎是因为它导致路线更改(routeChangeNotification)。有什么方法可以避免在录制开始时中断用户的音频?我什至无法用音调掩盖沉,因为直到辍学结束,我才能播放音调。

如果我可以按需打开闪避,那么在录制开始时处理单个辍学可能是可行的。是否可以在不重新激活会话的情况下更改会话的回避选项(并导致另一个路由更改中断)?

或者有一种方法可以手动隐藏其他应用程序的音频吗?这感觉很牵强,我认为我根本无法访问其他应用程序的音频,但是值得一问。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)