NERtc Windows SDK  V5.3.1
Public 成员函数 | 所有成员列表
nertc::IAudioDeviceManager类 参考abstract

#include <nertc_audio_device_manager.h>

Public 成员函数

virtual IDeviceCollectionenumerateRecordDevices ()=0
 
virtual int setRecordDevice (const char device_id[kNERtcMaxDeviceIDLength])=0
 
virtual int getRecordDevice (char device_id[kNERtcMaxDeviceIDLength])=0
 
virtual IDeviceCollectionenumeratePlayoutDevices ()=0
 
virtual int setPlayoutDevice (const char device_id[kNERtcMaxDeviceIDLength])=0
 
virtual int getPlayoutDevice (char device_id[kNERtcMaxDeviceIDLength])=0
 
virtual int setRecordDeviceVolume (uint32_t volume)=0
 
virtual int getRecordDeviceVolume (uint32_t *volume)=0
 
virtual int setPlayoutDeviceVolume (uint32_t volume)=0
 
virtual int getPlayoutDeviceVolume (uint32_t *volume)=0
 
virtual int setPlayoutDeviceMute (bool mute)=0
 
virtual int getPlayoutDeviceMute (bool *mute)=0
 
virtual int setRecordDeviceMute (bool mute)=0
 
virtual int getRecordDeviceMute (bool *mute)=0
 
virtual int adjustRecordingSignalVolume (uint32_t volume)=0
 
virtual int adjustPlaybackSignalVolume (uint32_t volume)=0
 
virtual int startRecordDeviceTest (uint64_t indication_interval)=0
 
virtual int stopRecordDeviceTest ()=0
 
virtual int startPlayoutDeviceTest (const char *test_audio_file_path)=0
 
virtual int stopPlayoutDeviceTest ()=0
 
virtual int startAudioDeviceLoopbackTest (uint64_t indication_interval)=0
 
virtual int stopAudioDeviceLoopbackTest ()=0
 

详细描述

音频设备管理方法。
IAudioDeviceManager 接口类提供用于管理音频设备的相关接口。可通过实例化 IAudioDeviceManager 类来获取 IAudioDeviceManager 接口。

成员函数说明

◆ adjustPlaybackSignalVolume()

virtual int nertc::IAudioDeviceManager::adjustPlaybackSignalVolume ( uint32_t  volume)
pure virtual

调节本地播放的所有远端用户的信号音量。
通过此接口可以实现调节所有远端用户在本地播放的混音音量。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 该方法仅调节应用程序中音量,不修改设备音量;若您需要修改设备音量,请调用设备管理相关接口。
  • 建议设置本地播放音量时使用默认值(100)或小于该值,否则可能会导致音质问题。
参数说明
参数名称 类型 描述
volume uin32_t 播放音量,取值范围为 [0,400]。
  • 0:静音。
  • 100:原始音量。
  • 400:最大可为原始音量的 4 倍(自带溢出保护)。
示例代码
//调整所有远端用户在本地的播放音量为50
rtc_engine_->adjustPlaybackSignalVolume(50);
//调整所有远端用户在本地的播放音量为0,静音所有用户
rtc_engine_->adjustPlaybackSignalVolume(0);

◆ adjustRecordingSignalVolume()

virtual int nertc::IAudioDeviceManager::adjustRecordingSignalVolume ( uint32_t  volume)
pure virtual

调节采集信号音量。 通过本接口可以实现设置录制声音的信号幅度,从而达到调节采集音量的目的。

自从
V3.5.0
调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
  • 该方法设置内部引擎为启用状态,在 leaveChannel 后设置失效,将恢复至默认。
  • 建议设置本地采集音量为默认值(100)或小于该值,否则可能会导致音质问题。
  • 该方法仅设置应用程序中的采集信号音量,不修改设备音量,也不会影响伴音、音效等的音量;若您需要修改设备音量,请调用设备管理相关接口。
参数说明
参数名称 类型 描述
volume uint32_t 采集信号音量,取值范围为 0 ~ 400。
  • 0:静音。
  • 100(默认):原始音量。
  • 400:最大音量值(自带溢出保护)。
示例代码
//将采集音量设置为100
device_manager_->adjustRecordingSignalVolume(100);
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。

◆ enumeratePlayoutDevices()

virtual IDeviceCollection* nertc::IAudioDeviceManager::enumeratePlayoutDevices ( )
pure virtual

获取系统中所有的播放设备列表。
该方法返回一个 IDeviceCollection 对象,包含系统中所有的播放设备。通过 IDeviceCollection 对象,App 可以枚举播放设备。在使用结束后,App 需调用 destroy 方法销毁返回的对象。

注解
程序必须调用 destroy 方法销毁返回的值。
返回
  • 方法调用成功:一个 IDeviceCollection 对象,包含所有的音频播放设备。
  • 方法调用失败:NULL。

◆ enumerateRecordDevices()

virtual IDeviceCollection* nertc::IAudioDeviceManager::enumerateRecordDevices ( )
pure virtual

获取系统中所有的音频采集设备列表。
该方法返回一个 IDeviceCollection 对象,包含系统中所有的音频采集设备。通过IDeviceCollection 对象,App 可以枚举音频采集设备。

注解
在使用结束后,App 需调用 destroy 方法销毁返回的对象。
返回
  • 方法调用成功:一个 IDeviceCollection 对象,包含所有的音频采集设备。
  • 方法调用失败:NULL。

◆ getPlayoutDevice()

virtual int nertc::IAudioDeviceManager::getPlayoutDevice ( char  device_id[kNERtcMaxDeviceIDLength])
pure virtual

获取当前使用的音频播放设备 ID。

参数
device_id音频播放设备的设备 ID。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getPlayoutDeviceMute()

virtual int nertc::IAudioDeviceManager::getPlayoutDeviceMute ( bool *  mute)
pure virtual

获取音频播放设备静音状态。

参数
mute音频播放设备静音状态。
  • true:静音状态。
  • false:非静音状态。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getPlayoutDeviceVolume()

virtual int nertc::IAudioDeviceManager::getPlayoutDeviceVolume ( uint32_t *  volume)
pure virtual

获取音频播放设备音量。

参数
volume音频播放设备音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getRecordDevice()

virtual int nertc::IAudioDeviceManager::getRecordDevice ( char  device_id[kNERtcMaxDeviceIDLength])
pure virtual

获取当前使用的音频采集设备 ID。

参数
device_id音频采集设备的设备 ID。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getRecordDeviceMute()

virtual int nertc::IAudioDeviceManager::getRecordDeviceMute ( bool *  mute)
pure virtual

获取音频采集设备静音状态。

参数
mute音频采集设备静音状态。
  • true: 静音状态。
  • false: 非静音状态。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ getRecordDeviceVolume()

virtual int nertc::IAudioDeviceManager::getRecordDeviceVolume ( uint32_t *  volume)
pure virtual

获取音频采集设备音量。

参数
volume音频采集设备音量。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setPlayoutDevice()

virtual int nertc::IAudioDeviceManager::setPlayoutDevice ( const char  device_id[kNERtcMaxDeviceIDLength])
pure virtual

指定音频播放设备。

调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
参数说明
参数名称 类型 描述
device_id const char 音频播放设备的设备 ID。
示例代码
std::string device_id = "xxx";
device_manager_->setPlayoutDevice(device_id.c_str())
返回
  • 0(kNERtcNoError):方法调用成功;
  • 其他:方法调用失败。
    • 30005(kErrorInvalidState):设置了外部音频输出。
    • 30008(kErrorDeviceNotFound):未找到对应设备。

◆ setPlayoutDeviceMute()

virtual int nertc::IAudioDeviceManager::setPlayoutDeviceMute ( bool  mute)
pure virtual

设置是否静音音频播放设备。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
注解
此接口仅静音播放的音频数据,不影响播放设备的运行。
参数说明
参数名称 类型 描述
enable bool 是否静音音频播放设备:
  • true:静音音频播放设备。
  • false:取消静音音频播放设备。
示例代码
//设置播放设备静音
device_manager_->setPlayoutDeviceMute(true);
//设置播放设备取消静音
device_manager_->setPlayoutDeviceMute(false);
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30001(kNERtcErrFatal):引擎尚未初始化。

◆ setPlayoutDeviceVolume()

virtual int nertc::IAudioDeviceManager::setPlayoutDeviceVolume ( uint32_t  volume)
pure virtual

设置音频播放设备音量。

参数
volume音频播放设备音量。取值范围为 0~255。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ setRecordDevice()

virtual int nertc::IAudioDeviceManager::setRecordDevice ( const char  device_id[kNERtcMaxDeviceIDLength])
pure virtual

指定音频采集设备。

调用时机
请在引擎初始化之后调用此接口,且该方法在加入房间前后均可调用。
注解
参数说明
参数名称 类型 描述
device_id const char 音频采集设备的设备 ID。
示例代码
std::string device_id = "xxx";
device_manager_->setRecordDevice(device_id.c_str())
返回
  • 0(kNERtcNoError):方法调用成功;
  • 其他:方法调用失败。
    • 30005(kErrorInvalidState):设置了外部音频输入。
    • 30008(kErrorDeviceNotFound):未找到对应设备。

◆ setRecordDeviceMute()

virtual int nertc::IAudioDeviceManager::setRecordDeviceMute ( bool  mute)
pure virtual

设置是否静音音频采集设备。

自从
V3.5.0
调用时机
请在初始化后调用该方法,且该方法仅可在加入房间后调用。
业务场景
适用于麦克风采集和伴音同时开启时,只发送伴音音频的场景。
参数说明
参数名称 类型 描述
mute bool 是否静音音频采集设备:
  • true:静音音频采集设备。
  • false:取消静音音频采集设备。
示例代码
//静音设备
rtc_engine->GetAudioDeviceManager()->SetRecordDeviceMute(true);
//解除设备静音
rtc_engine->GetAudioDeviceManager()->SetRecordDeviceMute(false);
相关接口
  • enableLocalAudio:开启或关闭本地音频采集和发送。
  • enableMediaPub:开启或关闭本地媒体流(主流)的发送;适用于单独开启麦克风但不发送音频的场景,比如会议场景、大房间。
  • muteLocalAudioStream:开启或关闭本地音频主流的发送;适用于需要频繁静音\取消静音操作的场景。
  • adjustRecordingSignalVolume:调节采集信号音量;适用于需要精确调整本地音频采集(包括外部输入)音量的场景,比如 KTV、语聊房。
返回
  • 0(kNERtcNoError):方法调用成功。
  • 其他:方法调用失败。
    • 30001(kNERtcErrFatal):设备静音失败。

◆ setRecordDeviceVolume()

virtual int nertc::IAudioDeviceManager::setRecordDeviceVolume ( uint32_t  volume)
pure virtual

设置音频采集设备音量。

参数
volume音频采集设备音量。取值范围为 0~255。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ startAudioDeviceLoopbackTest()

virtual int nertc::IAudioDeviceManager::startAudioDeviceLoopbackTest ( uint64_t  indication_interval)
pure virtual

开始音频设备回路测试。
该方法测试音频采集和播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地音频,然后使用音频播放设备播放出来。 SDK 会按设置的时间间隔触发 onLocalAudioVolumeIndication 回调, 报告音量信息。

注解
  • 该方法需在加入房间前调用。
  • 音频设备回路测试会在通话开始后自动结束,您也可以手动调用 stopAudioDeviceLoopbackTest 停止音频设备回路测试。
  • 该方法仅在本地进行音频设备测试,不涉及网络连接。
参数
indication_intervalSDK 返回 onLocalAudioVolumeIndication 回调的 时间间隔,单位为毫秒。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ startPlayoutDeviceTest()

virtual int nertc::IAudioDeviceManager::startPlayoutDeviceTest ( const char *  test_audio_file_path)
pure virtual

启动音频播放设备测试。 该方法测试音频播放设备是否能正常工作。启动测试后,SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。 调用该方法后,SDK 会每隔 100 ms 触发一次 onLocalAudioVolumeIndication 回调,报告播放设备的音量信息。

注解
  • 该方法需在加入房间前调用。
  • 音频播放设备测试会在通话开始后自动结束,您也可以手动调用 stopPlayoutDeviceTest 停止音频播放设备测试。
  • 支持文件格式包括 wav、mp3、aac。
参数
test_audio_file_path音频文件的绝对路径,路径字符串使用 UTF-8 编码格式。
返回
  • 0: 成功,并且可以听到所设置文件的声音。
  • 其他:失败。

◆ startRecordDeviceTest()

virtual int nertc::IAudioDeviceManager::startRecordDeviceTest ( uint64_t  indication_interval)
pure virtual

启动音频采集设备测试。
该方法测试音频采集设备是否能正常工作。
调用该方法后,SDK 会按设置的时间间隔触发 onLocalAudioVolumeIndication 回调, 报告采集设备的音量信息。

注解
  • 该方法需在加入房间前调用。
  • 音频采集设备测试会在通话开始后自动结束,您也可以手动调用 stopRecordDeviceTest 停止音频采集设备测试。
参数
indication_intervalSDK 返回 onLocalAudioVolumeIndication 回调的时间间隔,单位为毫秒。
返回
  • 0: Success.
  • other: Failure.

◆ stopAudioDeviceLoopbackTest()

virtual int nertc::IAudioDeviceManager::stopAudioDeviceLoopbackTest ( )
pure virtual

停止音频设备回路测试。

注解
  • 该方法需在加入房间前调用。
  • 音频设备回路测试会在通话开始后自动结束,您也可以手动调用 stopAudioDeviceLoopbackTest 停止音频设备回路测试。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopPlayoutDeviceTest()

virtual int nertc::IAudioDeviceManager::stopPlayoutDeviceTest ( )
pure virtual

停止播放设备测试。

注解
  • 该方法需在加入房间前调用。
  • 播放设备测试会在通话开始后自动结束,您也可以手动调用 stopPlayoutDeviceTest 停止播放设备测试。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

◆ stopRecordDeviceTest()

virtual int nertc::IAudioDeviceManager::stopRecordDeviceTest ( )
pure virtual

停止音频采集设备测试。
该方法停止音频采集设备测试。

注解
  • 该方法需在加入房间前调用。
  • 音频采集设备测试会在通话开始后自动结束,您也可以手动调用 stopRecordDeviceTest 停止音频采集设备测试。
返回
  • 0: 方法调用成功;
  • 其他: 方法调用失败。

该类的文档由以下文件生成: