音频设备管理

更新时间: 2021/04/23 07:34:32

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

注意事项

  • 语音通话音频播放模式默认为扬声器模式。
  • 在 iPad 设备上,音频播放模式只能使用扬声器模式,无法设置音频播放为听筒模式。
  • 耳机连接时,自动使用耳机播放。此时即使设置音频播放设备为扬声器或听筒,仍旧使用耳机播放,耳机断开连接时,恢复音频播放设备的配置。

实现方法

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

  1. 在加入房间成功后调用 getLoudspeakerMode:(bool *)enabled 判断当前是听筒还是扬声器模式。

  2. 调用 setLoudspeakerMode:(bool)enable 接口进行切换。

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

示例代码

objc    // 判断当前音频路由器。
    bool enabled = false;
    [self.engine getLoudspeakerMode:(&enabled)];

    // 设置音频路由。
    bool enableSpeakerMode = true;
    int result = [self.engine setLoudspeakerMode: enableSpeakerMode];

    - (void)onNERtcEngineAudioDeviceRoutingDidChange:(NERtcAudioOutputRouting)routing {
    NSString *currentAudioDevice;
        switch (routing) {
            case kNERtcAudioOutputRoutingHeadset:
                currentAudioDevice = @"耳机";
                break;
            case kNERtcAudioOutputRoutingEarpiece:
                currentAudioDevice = @"耳返";
                break;
            case kNERtcAudioOutputRoutingLoudspeaker:
                currentAudioDevice = @"扬声器";
                break;
            case kNERtcAudioOutputRoutingBluetooth:
                currentAudioDevice = @"蓝牙耳机";
            default:
                currentAudioDevice = @"Default";
                break;
        }
    }

API参考

方法 描述
setPlayoutDeviceMute 设置音频播放设备的状态
getPlayoutDeviceMute 获取音频播放设备的状态
setRecordDeviceMute 设置录音设备的状态
getRecordDeviceMute 获取录音设备的状态
getLoudspeakerMode 获取目前是否使用扬声器模式
setLoudspeakerMode 设置音频播放扬声器模式

音频设备回调:

事件 描述
onNERtcEngineAudioDeviceRoutingDidChange 音频输出设备改变回调
此文档是否对你有帮助?
有帮助
去反馈
  • 注意事项
  • 实现方法
  • 示例代码
  • API参考