AVAudioSession.RouteChangeReason 未检测到连接的蓝牙 headset/earphones

AVAudioSession.RouteChangeReason not detecting connected bluetooth headset/earphones

我正在 Swift 中为 iOS 开发语音通话应用程序,我需要启用无线(蓝牙)的自动检测和自动连接 headsets/earpeaces。

我正在使用 AVAudioSession RouteChangeReason,但它没有检测到 airpods 或其他无线耳机何时通过蓝牙连接。连接设备后,我什至可以在蓝牙设置中看到它已连接,但设备未列在 MPVolumeView 中,如您在 screenshoot.

中所见

我一直在寻找关于如何在整个互联网上解决这个问题的答案,尽管 Whosebug 上有很多类似的问题 none 其中与我的案例特别相关,所以请告诉我如何解决这个问题。

.allowBluetoothA2DPplayAndRecord 无效。您无法通过 A2DP 进行录制。删除那个。请注意,当您执行此操作时,如果用户正在听音乐,质量将急剧下降(AirPods 可能有专有的解决方法;我没有在这种模式下玩过它们)。为了通过蓝牙录制,您必须使用 HFP,它基本上提供“电话”质量的音频。

刚刚看了代码,终于发现哪里不对了。问题是我不止一次设置类别,所以出于某种原因,这导致无线 headset/earpeace 无法直接连接到应用程序。