音频设备管理

更新时间: 2024/09/18 16:26:13

在音频场景中,您可能需要根据实际的场地情况选择采用音频的采集和播放设备,例如在室内场景中选用听筒进行音频播放。NERTC SDK 支持自由切换音频设备。

注意事项

耳机连接时,自动使用耳机播放。此时即使设置音频播放设备为扬声器或听筒,仍旧使用耳机播放,耳机断开连接时,恢复音频播放设备的配置。

实现方法

参考如下步骤,在您的项目中切换音频路由:

  1. 在加入房间成功后调用 isSpeakerphoneOn 判断当前是听筒还是扬声器模式。

  2. 调用 setSpeakerphoneOn 接口进行切换。

    • true:扬声器。
    • false:听筒。
  3. 通过监听 onAudioDeviceChanged 回调来监听音频路由切换事件。

示例项目源码

网易云信提供设备管理的示例项目源码 DeviceManagement ,您可以参考该源码实现音频设备管理。

示例代码

    // 判断当前音频路由器。
    boolean isSpeakerphoneOn = NERtcEx.getInstance().isSpeakerphoneOn();
    
    // 设置音频路由。
    NERtcEx.getInstance().setSpeakerphoneOn(isSpeakerphoneOn);
    
    // 音频路由切换回调。
    public void onAudioDeviceChanged(int selected) {
        String audioDevice;
        switch (selected) {
            case NERtcConstants.AudioDevice.EARPIECE:
                audioDevice = "听筒";
                break;
            case NERtcConstants.AudioDevice.BLUETOOTH_HEADSET:
                audioDevice = "蓝牙耳机";
                break;
            case NERtcConstants.AudioDevice.SPEAKER_PHONE:
                audioDevice = "扬声器";
                break;
            case NERtcConstants.AudioDevice.WIRED_HEADSET:
                audioDevice = "有线耳机";
                break;
            default:
                audioDevice = "EARPIECE";
                break;
        }
    }

API参考

方法 功能描述
setPlayoutDeviceMute 设置是否音频播放静音。
setRecordDeviceMute 设置是否音频采集静音。
isSpeakerphoneOn 查看扬声器是否开启。
setSpeakerphoneOn 设置扬声器是否开启。

音频设备回调:

事件 功能描述
onAudioDeviceChanged 语音播放设备发生改变
此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 实现方法
  • 示例项目源码
  • 示例代码
  • API参考