在iPhone上选择音频设备

phe*_*cks 8 iphone audio bluetooth objective-c

有没有办法让用户选择他们用于音频输出的设备?

在文档中,我发现您可以通过将kAudioSessionProperty_OverrideAudioRoute设置为以下任一路径来选择:

  • kAudioSessionOverrideAudioRoute_None,或
  • kAudioSessionOverrideAudioRoute_Speaker

但是,我想让用户使用他们的蓝牙耳机听音频.

如果您查看Apple自己的"语音备忘录"应用程序,在播放菜单中左上角有一个按钮,可让您选择要使用的音频设备.安装蓝牙耳机后,按下该按钮会弹出一个菜单,可以在以下选项之间进行选择:

  • 蓝牙耳机
  • 苹果手机
  • 扬声器

有没有办法在我自己的应用程序中使用标准Apple API实现此功能?

Kyl*_*ing 13

在3.1中,有两种协议支持向蓝牙设备输出音频,其使用取决于附件.第一个是A2DP,用于支持接收立体声音乐的存储,另一个是免提,适用于所有免提配件.要激活第一个选项,您需要使用具有音量滑块和音频设备选择按钮的MPVolumeView类,当此视图添加到应用程序中的任何视图时,它为用户提供了设置音量的方法如果已连接则选择BT设备(这是我找到的唯一方法)另一方面,可以使用呼叫激活第二个选项

 UInt32 bt = TRUE;
 result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt);
Run Code Online (Sandbox Code Playgroud)

应用程序必须初始化音频会话并使用corect catagory(它必须支持重新编码才能工作).设置EnableBluetoothInput后,所有输入和输出音频将通过免提设备进行路由(如果连接,当然:))