IAudioDeviceManager

最近更新时间:2022-09-20 05:17:40

Public 成员函数
virtual IAudioDeviceCollection *enumeratePlaybackDevices ()=0
virtual IAudioDeviceCollection *enumerateRecordingDevices ()=0
virtual int[setPlaybackDevice](#setPlaybackDevice) (const char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual intsetRecordingDevice (const char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual intstartPlaybackDeviceTest (const char *testAudioFilePath)=0
virtual intstopPlaybackDeviceTest ()=0
virtual intsetPlaybackDeviceVolume (int volume)=0
virtual intgetPlaybackDeviceVolume (int *volume)=0
virtual intsetRecordingDeviceVolume (int volume)=0
virtual intgetRecordingDeviceVolume (int *volume)=0
virtual intsetPlaybackDeviceMute (bool mute)=0
virtual intgetPlaybackDeviceMute (bool *mute)=0
virtual intsetRecordingDeviceMute (bool mute)=0
virtual intgetRecordingDeviceMute (bool *mute)=0
virtual intstartRecordingDeviceTest (int indicationInterval)=0
virtual intstopRecordingDeviceTest ()=0
virtual intgetPlaybackDevice (char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual intgetPlaybackDeviceInfo (char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH])=0
virtual intgetRecordingDevice (char deviceId[MAX_DEVICE_ID_LENGTH])=0
virtual intgetRecordingDeviceInfo (char deviceId[MAX_DEVICE_ID_LENGTH], char deviceName[MAX_DEVICE_ID_LENGTH])=0
virtual intstartAudioDeviceLoopbackTest (int indicationInterval)=0
virtual intstopAudioDeviceLoopbackTest ()=0
virtual voidrelease ()=0
Protected 成员函数
virtual~IAudioDeviceManager ()

详细描述

音频设备管理方法。

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

构造及析构函数说明

~IAudioDeviceManager

virtual ar::rtc::IAudioDeviceManager::~IAudioDeviceManager()

成员函数说明

enumeratePlaybackDevices

virtual IAudioDeviceCollection* ar::rtc::IAudioDeviceManager::enumeratePlaybackDevices()

获取系统中所有的播放设备列表。

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

返回

  • 一个 IAudioDeviceCollection 对象,包含所有的播放设备(方法调用成功);
  • NULL(方法调用失败)。

enumerateRecordingDevices

virtual IAudioDeviceCollection* ar::rtc::IAudioDeviceManager::enumerateRecordingDevices()

获取系统中所有的录音设备列表。

该方法返回一个 IAudioDeviceCollection 对象,包含系统中所有的录音设备。通过 IAudioDeviceCollection 对象,App 可以枚举录音设备。在使用结束后,App 需调用 release 方法销毁返回的对象。

返回

  • 一个 IAudioDeviceCollection 对象,包含所有的录音设备(方法调用成功);
  • NULL(方法调用失败)。

setPlaybackDevice

virtual int ar::rtc::IAudioDeviceManager::setPlaybackDevice (   const char  deviceId[MAX_DEVICE_ID_LENGTH])

指定播放设备。

参数

参数描述
deviceId通过 deviceID 指定播放设备。由 enumeratePlaybackDevices 获取。插拔设备不会影响 deviceId。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

setRecordingDevice

virtual int ar::rtc::IAudioDeviceManager::setRecordingDevice(const char     deviceId[MAX_DEVICE_ID_LENGTH]) 

指定录音设备。

参数

参数描述
deviceId录音设备的 Device ID。可通过 enumerateRecordingDevices 获取。插拔设备不会影响 deviceId。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

startPlaybackDeviceTest

virtual int ar::rtc::IAudioDeviceManager::startPlaybackDeviceTest   (   const char *    testAudioFilePath   )   

启动播放设备测试。

该方法测试播放设备是否能正常工作。启动测试后,SDK 播放指定的音频文件并通过 onAudioVolumeIndication 回调向 app 上报音量信息,测试者如果能听到声音,说明播放设备能正常工作。

参数

参数描述
testAudioFilePath音频文件的绝对路径,路径字符串使用 UTF-8 编码格式。

支持文件格式: wav、mp3、m4a、aac;

支持文件采样率: 8000、16000、32000、44100、48000。

返回

  • 0,方法调用成功:你可以听到设置的音频文件的声音;
  • <0 方法调用失败

stopPlaybackDeviceTest

virtual int ar::rtc::IAudioDeviceManager::stopPlaybackDeviceTest(   )   

停止播放设备测试。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

setPlaybackDeviceVolume

virtual int ar::rtc::IAudioDeviceManager::setPlaybackDeviceVolume   (   int     volume) 

设置播放设备音量。

参数

参数描述
volume播放设备音量。取值可在 [0,255]。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

getPlaybackDeviceVolume

virtual int ar::rtc::IAudioDeviceManager::getPlaybackDeviceVolume   (int * volume)  

获取播放设备音量。

参数

参数描述
volume播放设备音量。取值可在 [0,255]。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

setRecordingDeviceVolume

virtual int ar::rtc::IAudioDeviceManager::setRecordingDeviceVolume  (   int volume) 

设置录音设备音量

参数

参数描述
volume录音设备音量。取值范围 [0,255]。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

getRecordingDeviceVolume

virtual int ar::rtc::IAudioDeviceManager::getRecordingDeviceVolume  (   int * volume)   

获取录音设备音量

参数

参数描述
volume录音设备音量。取值范围 [0,255]。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

setPlaybackDeviceMute

virtual int ar::rtc::IAudioDeviceManager::setPlaybackDeviceMute (   bool    mute)

静音播放设备。

参数

参数描述
mutetrue: 设备设为静音;

false: 设备设为不静音

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

getPlaybackDeviceMute

virtual int ar::rtc::IAudioDeviceManager::getPlaybackDeviceMute (   bool *  mute)   

获取播放设备静音状态。

参数

参数描述
mutetrue: 已静音状态;

false: 非静音状态。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

setRecordingDeviceMute

virtual int ar::rtc::IAudioDeviceManager::setRecordingDeviceMute    (   bool    mute)

静音录音设备。

参数

参数描述
mutetrue: 设备设为静音;

false: 设备设为非静音。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

getRecordingDeviceMute

virtual int ar::rtc::IAudioDeviceManager::getRecordingDeviceMute    (   bool *  mute    )   

获取录音设备静音状态。

参数

参数描述
mutetrue: 已静音状态;

false: 非静音状态。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

startRecordingDeviceTest

virtual int ar::rtc::IAudioDeviceManager::startRecordingDeviceTest  (   int     indicationInterval  )

启动录音设备测试。

该方法测试录音设备是否能正常工作。启动测试后,SDK 通过 onAudioVolumeIndication 回调方法向 App 上报音量信息。

参数

参数描述
indicationIntervalonAudioVolumeIndication 回调的周期(毫秒)

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

stopRecordingDeviceTest

virtual int ar::rtc::IAudioDeviceManager::stopRecordingDeviceTest   (       )

停止录音设备测试。

该方法停止录音设备测试。调用 startRecordingDeviceTest 后,必须调用该方法停止测试。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

getPlaybackDevice

virtual int ar::rtc::IAudioDeviceManager::getPlaybackDevice (   char    deviceId[MAX_DEVICE_ID_LENGTH]  )   

获取音频播放设备。

参数

参数描述
deviceId音频播放设备的设备 ID

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

getPlaybackDeviceInfo

virtual int ar::rtc::IAudioDeviceManager::getPlaybackDeviceInfo (   char    deviceId[MAX_DEVICE_ID_LENGTH],
char    deviceName[MAX_DEVICE_ID_LENGTH] 
)   

根据设备 ID 和设备名称获取播放设备。

参数

参数描述
deviceId播放设备的设备 ID
deviceName播放设备的设备名称。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

getRecordingDevice

virtual int ar::rtc::IAudioDeviceManager::getRecordingDevice    (   char    deviceId[MAX_DEVICE_ID_LENGTH]  )   

根据设备 ID 获取音频录制设备。

参数

参数描述
deviceId录制设备的设备 ID

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

getRecordingDeviceInfo

virtual int ar::rtc::IAudioDeviceManager::getRecordingDeviceInfo    (   char    deviceId[MAX_DEVICE_ID_LENGTH],
char    deviceName[MAX_DEVICE_ID_LENGTH] 
)       

根据设备名称和设备 ID 获取音频录制设备信息。

参数

参数描述
deviceId音频录制设备的设备 ID
deviceName音频录制设备的设备名称。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

startAudioDeviceLoopbackTest

virtual int ar::rtc::IAudioDeviceManager::startAudioDeviceLoopbackTest  (   int indicationInterval  )   

开始音频设备回路测试。

该方法测试麦克风和播放设备是否能正常工作。一旦测试开始,麦克风会采集本地讲话声音,然后使用扬声器播放出来,同时 SDK 会通过 onAudioVolumeIndication 回调向应用程序上报音量信息。

参数

参数描述
indicationIntervalSDK 返回 onAudioVolumeIndication回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

注意事项:

  • 该方法仅在本地进行音频设备测试,不涉及网络连接。

stopAudioDeviceLoopbackTest

virtual int ar::rtc::IAudioDeviceManager::stopAudioDeviceLoopbackTest() 

停止音频设备回路测试。

返回

  • 0: 方法调用成功
  • < 0: 方法调用失败

注意事项:

  • 在调用 startAudioDeviceLoopbackTest 后,必须调用该方法停止音频设备回路测试。

release

virtual void ar::rtc::IAudioDeviceManager::release()

释放 IAudioDeviceManager 对象占用的所有资源。