【问题标题】:Select Audio device on iPhone在 iPhone 上选择音频设备
【发布时间】:2011-03-12 17:43:08
【问题描述】:

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

在文档中,我发现您可以通过将 kAudioSessionProperty_OverrideAudioRoute 设置为以下任一方式来选择要使用的路由:

  • kAudioSessionOverrideAudioRoute_None,或
  • kAudioSessionOverrideAudioRoute_Speaker

但是我想让用户使用他们的蓝牙耳机来收听音频。

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

  • 蓝牙耳机
  • iPhone
  • 演讲者

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

【问题讨论】:

    标签: iphone objective-c audio bluetooth


    【解决方案1】:

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

     UInt32 bt = TRUE;
     result = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryEnableBluetoothInput , sizeof(UInt32), &bt);
    

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-13
        • 2014-02-26
        • 1970-01-01
        • 2017-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多