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

断开蓝牙设备时AVAudioSessionRouteChangeNotification的行为不一致,ios,objective-c,bluetooth,avaudiosession,Ios,Objective C,Bluetooth,Avaudiosession,对于我正在开发的应用程序,我有一个audioManager类,在这个类中,我处理AVAudioPlayer和AVAudioSession 此类是AVAudioSessionRouteChangeNotification的观察者。 例如,当我通过AVAudioPlayer连接蓝牙耳机播放音频时,会收到一条通知AVAudioSessionRouteChangeReasonNewDeviceAvailable以及断开连接时 AVAudioSessionRouteChangeReasonOldDevic

对于我正在开发的应用程序,我有一个audioManager类,在这个类中,我处理AVAudioPlayer和AVAudioSession

此类是
AVAudioSessionRouteChangeNotification
的观察者。 例如,当我通过
AVAudioPlayer
连接蓝牙耳机播放音频时,会收到一条通知
AVAudioSessionRouteChangeReasonNewDeviceAvailable
以及断开连接时
AVAudioSessionRouteChangeReasonOldDeviceUnavailable
按原样

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

我一直在苹果的文档中搜索,所以我用谷歌搜索了一下,但没有找到这种行为的原因

在我的应用程序中,我允许使用
AVAudioSessionPortOverrideSpeaker
将音频路由到扬声器。当我到达通知中的原因覆盖时,我需要处理一些更改。因此,因为我已经断开了蓝牙连接,所以到达那里远不是最佳状态


有人知道为什么会发生这种情况吗?

就连我也面临着这个问题。你是如何解决这个问题的?