如何解决AudioKit 4.11.2:AKSettings.defaultToSpeaker 正确选择扬声器,但禁用对蓝牙输出的路由更改
我的环境是:AudioKit 4.11.2、macOS 11.1、iPhone SE 1 gen 14.2、Xcode 12.3。
当 AVAudioSession 在 .playAndRecord 中时会发生以下行为。设置为 .playback
时不会发生这种情况。
我正在尝试制作一个 iOS 应用程序,当 AudioKit 处于活动状态并且 AVAudioSession 在 .playAndRecord
中(没有录音):
- 当用户在 AudioKit 处于活动状态时断开所有音频输出(如耳机或蓝牙)时,内置扬声器输出音频,而不是内置接收器。
- 当用户连接一个新的蓝牙输出时,这个新输出将成为活动输出。
当 AKSettings.defaultToSpeaker
设置为 true
时,我可以实现 (1),但是 (2) 在这种情况下不起作用。当 .defaultToSpeaker
设置为 true
时,蓝牙输出在连接之前调用 AKManager.start()
时工作,但连接新蓝牙设备时自动更改路由不起作用,即使 AKSettings.enableRouteChangeHandling
设置为 true
。
当 AKSettings.defaultToSpeaker
设置为 false
时,我可以实现 (2),但是 (1) 在这种情况下不起作用。当 .defaultToSpeaker 设置为 false
时,在调用 AKManager.start()
之前没有电缆或蓝牙音频连接时,内置扬声器输出工作。之后,如果连接和断开耳机,则有源输出将是接收器。
感觉就像是一个简短的毯子问题。这种情况只发生在我身上吗?
请注意,当 AVAudioSession 在 .playback
中时,AKSettings.defaultToSpeaker
设置为 false 可以解决我所有的问题:在这种情况下,我可以同时拥有 (1) 和 (2)。
一种方法是使用 NotificationCenter 手动处理路由更改,但我想确保 AudioKit 在执行此操作之前打算以这种方式解决它。
(我知道最好的做法是上传一个重现错误的示例,但我现在没时间了:(我会尽快尝试在其中的一个中重现它AudioKit 应用示例。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。