在iPhone上选择音频设备

时间:2010-07-07 09:45:45

标签: iphone objective-c audio bluetooth

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

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

  • kAudioSessionOverrideAudioRoute_None,或
  • kAudioSessionOverrideAudioRoute_Speaker

但我想让用户使用蓝牙耳机听音频。

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

  • 蓝牙耳机
  • iPhone
  • 扬声器

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

3 个答案:

答案 0 :(得分:13)

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

激活第二个选项
 UInt32 bt = TRUE;
 result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt);

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

答案 1 :(得分:1)

最简单的方法是将MPVolume控件(link to documentation)添加到用户界面,并设置showsVolumeSlider = NO和showsRouteButton = YES。

用户将有一个路由按钮,用于将音频路由到他们选择的设备。

答案 2 :(得分:-1)