断开蓝牙设备时AVAudioSessionRouteChangeNotification的行为不一致

时间:2016-11-02 20:16:38

标签: ios objective-c bluetooth avaudiosession

对于我正在开发的应用程序,我有一个audioManager类,除此之外我还处理AVAudioPlayer和AVAudioSession。

这个班是AVAudioSessionRouteChangeNotification的观察者。 例如,当通过AVAudioPlayer播放音频时,我连接蓝牙耳机时会收到通知AVAudioSessionRouteChangeReasonNewDeviceAvailable,并且在断开连接时 应该是AVAudioSessionRouteChangeReasonOldDeviceUnavailable

当我设置AVAudioSessionCategoryPlayAndRecord时,奇怪的部分出现了: 启用蓝牙耳机可以通常AVAudioSessionRouteChangeReasonNewDeviceAvailable,但断开连接时我得到的是AVAudioSessionRouteChangeReasonOverride

我正在Apple的文档中搜索,搜索它并搜索它,但没有找到这种行为的原因。

我在我的应用中允许的一件事是使用AVAudioSessionPortOverrideSpeaker将音频路由到扬声器。当我在通知中达到该原因覆盖时,我有一个案例来处理一些变化。所以到那里因为我已经断开了蓝牙,这远非最佳。

有没有人知道为什么会这样?

0 个答案:

没有答案