我对与几个蓝牙任务相关的 CoreAudio AudioSession 框架有几个问题,我希望有人可以帮助我解决这些问题,或者至少可以确认我的最新发现。用例是一个导航应用程序,它想要连接支持 HFP 和 A2DP 的蓝牙收音机。我已经阅读了整个 AudioSession 编程指南,但我仍然有一些未解决的问题,尤其是通过蓝牙使用音频输出。
蓝牙 HFP 音频输出 (kAudioSessionOutputRoute_BluetoothHFP) 仅在设置了 AudioSession kAudioSessionCategory_PlayAndRecord 并且您覆盖以下属性的情况下才有可能:kAudioSessionProperty_OverrideCategoryEnableBluetoothInput。这是真的?如果没有,我如何将 MediaPlayback 会话作为示例路由到 kAudioSessionOutputRoute_BluetoothHFP 路由。
类别 kAudioSessionCategory_PlayAndRecord 无法在后台模式下输出音频。因此,如果我在后台,我无法通过蓝牙 HFP 路由播放声音。这是真的?如果应用程序在后台,有没有办法通过蓝牙 HFP 协议发送音频?
如果有支持 A2DP 的设备可用,我的音频路由将始终自动切换到 kAudioSessionOutputRoute_BluetoothA2DP 路由。如何防止此路线更改?另外我如何指定我现在想要的输出路线。使用 iOS5,可以通过 kAudioSessionProperty_AudioRouteDescription 标志查询所有这些路由目的地,但我不知道如何设置它,因为我想要它。有没有可能实现这一目标?
我希望你们中的一些人可以帮助我解决这些问题。它真的会帮助我全面了解 CoreAudio,尤其是 AudioSession 框架。