对于我正在开发的应用程序,我有一个audioManager类,除此之外我还处理AVAudioPlayer和AVAudioSession。
这个班是AVAudioSessionRouteChangeNotification
的观察者。
例如,当通过AVAudioPlayer
播放音频时,我连接蓝牙耳机时会收到通知AVAudioSessionRouteChangeReasonNewDeviceAvailable
,并且在断开连接时
应该是AVAudioSessionRouteChangeReasonOldDeviceUnavailable
。
当我设置AVAudioSessionCategoryPlayAndRecord
时,奇怪的部分出现了:
启用蓝牙耳机可以通常AVAudioSessionRouteChangeReasonNewDeviceAvailable
,但断开连接时我得到的是AVAudioSessionRouteChangeReasonOverride
。
我正在Apple的文档中搜索,搜索它并搜索它,但没有找到这种行为的原因。
我在我的应用中允许的一件事是使用AVAudioSessionPortOverrideSpeaker
将音频路由到扬声器。当我在通知中达到该原因覆盖时,我有一个案例来处理一些变化。所以到那里因为我已经断开了蓝牙,这远非最佳。
有没有人知道为什么会这样?