在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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...