有没有办法让用户选择他们用于音频输出的设备?
在文档中,我发现您可以通过将 kAudioSessionProperty_OverrideAudioRoute 设置为以下任一选项来选择要使用的路由:
但是,我想让用户使用其蓝牙耳机来收听音频。
如果您查看Apple自己的“语音备忘录”应用程序,则在播放菜单的左上方有一个按钮,可让您选择要使用的音频设备。连接蓝牙耳机后,按此按钮将弹出一个菜单,使您可以在以下菜单之间进行选择:
有没有办法在我自己的应用程序中使用标准Apple API来实现此功能?
最佳答案
在3.1中,有两种协议(protocol)支持将音频输出到蓝牙设备,其使用取决于附件。第一个是A2DP,它与支持接收立体声音乐的附件一起使用,另一个是对所有免提配件都是免提的。
要激活第一个选项,您需要使用MPVolumeView类,该类具有音量滑块和音频设备选择按钮,当此 View 添加到应用程序中的任何 View 时,它为用户提供了一种设置音量的方法并选择一个BT设备(如果已连接)(这是我发现的唯一方法)
另一方面,可以使用调用激活第二个选项
UInt32 bt = TRUE;
result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt);
该应用程序必须初始化 Audio Session 并使用corect分类(它必须支持重新编码才能正常工作)。设置EnableBluetoothInput后,所有输入和输出音频将通过免提设备进行路由(如果已连接,则:))