IAgoraRtcAudioPlaybackDeviceManager
IAgoraRtcAudioPlaybackDeviceManager 类,用于关于音频播放设备。
EnumeratePlaybackDevices
获取系统中所有的播放设备列表。
public abstract DeviceInfo[] EnumeratePlaybackDevices();
返回值
- 方法调用成功,返回一个 DeviceInfo 数组,包含所有音频播放设备的设备 ID 和设备名称。
- 方法调用失败:NULL。
SetPlaybackDevice
指定播放设备。
public abstract int SetPlaybackDevice(string deviceId);
参数
- deviceId
-
通过 deviceID 指定播放设备。由 EnumeratePlaybackDevices 获取。插拔设备不会影响 deviceId。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
StartPlaybackDeviceTest
启动音频播放设备测试。
public abstract int StartPlaybackDeviceTest(string testAudioFilePath);
该方法测试音频播放设备是否能正常工作。启动测试后,SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
调用该方法后,SDK 会每隔 100 ms 触发一次 OnAudioVolumeIndication 回调,报告 uid = 1 及播放设备的音量信息。
该方法测试音频播放设备是否能正常工作。启动测试后,SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
- 在加入频道前调用该方法,SDK 触发 OnAudioVolumeIndication 和 OnAudioDeviceTestVolumeIndication 回调,其中:
- OnAudioVolumeIndication 报告
uid = 1
和volume
。 - OnAudioDeviceTestVolumeIndication 报告
volumeType = AudioTestPlaybackVolume(1)
和volume
。
- OnAudioVolumeIndication 报告
- 在加入频道后调用该方法,SDK 触发 OnAudioDeviceTestVolumeIndication 回调,报告 AudioTestPlaybackVolume 和
volume
。
- 加入频道后调用该方法,测试的是 SDK 正在使用的音频播放设备。
- 调用该方法后,必须调 StopPlaybackDeviceTest 方法停止测试
参数
- testAudioFilePath
- 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
StopPlaybackDeviceTest
停止音频播放设备测试。
public abstract int StopPlaybackDeviceTest();
该方法停止音频播放设备测试。调用 StartPlaybackDeviceTest 后,必须调用该方法停止测试。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
SetPlaybackDeviceVolume
设置播放设备音量。
public abstract int SetPlaybackDeviceVolume(int volume);
参数
- volume
- 播放设备音量。取值可在 [0,255]。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
GetPlaybackDeviceVolume
获取播放设备音量。
public abstract int GetPlaybackDeviceVolume();
返回值
播放设备音量。取值范围 [0,255]。
SetPlaybackDeviceMute
设置播放设备静音。
public abstract int SetPlaybackDeviceMute(bool mute);
参数
- mute
-
是否设置播放设备为静音:
true
: 播放设备设为静音。false
: 播放设备不设为静音。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
GetPlaybackDeviceMute
获取当前播放设备静音状态。
public abstract bool GetPlaybackDeviceMute();
返回值
true
: 播放设备为静音状态。false
: 播放设备为非静音状态。
GetPlaybackDevice
获取当前音频播放设备。
public abstract string GetPlaybackDevice();
返回值
当前音频播放设备。
GetPlaybackDeviceInfo
根据设备 ID 和设备名称获取播放设备。
public abstract DeviceInfo GetPlaybackDeviceInfo();
返回值
音频播放设备的设备信息,包含设备 ID 和设备名称:DeviceInfo。
StartAudioDeviceLoopbackTest
开始音频设备回路测试。
public abstract int StartAudioDeviceLoopbackTest(int indicationInterval);
该方法测试音频采集和播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地音频,然后使用音频播放设备播放出来。SDK 会按设置的时间间隔触发两个 OnAudioVolumeIndication 回调,分别报告音频采集设备(uid = 0)和音频播放设置(uid = 1)的音量信息。
- 该方法需要在加入频道前调用。
- 该方法仅在本地进行音频设备测试,不涉及网络连接。
该方法测试音频采集和播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地音频,然后使用音频播放设备播放出来。
- 在加入频道前调用该方法,SDK 触发 OnAudioVolumeIndication 和 OnAudioDeviceTestVolumeIndication 回调,每个回调触发两次,其中:
- OnAudioVolumeIndication 分别报告
uid = 0
和volume
,以及uid = 1
和volume
。 - OnAudioDeviceTestVolumeIndication 分别报告
volumeType = AudioTestRecordingVolume(0)
和volume
,以及volumeType = AudioTestPlaybackVolume(1)
和volume
。
- OnAudioVolumeIndication 分别报告
- 在加入频道后调用该方法,SDK 触发两个 OnAudioDeviceTestVolumeIndication 回调,分别报告
volumeType = AudioTestRecordingVolume(0)
和volume
,以及volumeType = AudioTestPlaybackVolume(1)
和volume
。
- 该方法仅在本地进行音频设备测试,不涉及网络连接。
- 加入频道后调用该方法前,请确保音频采集设备处于开启状态,即 EnableLocalAudio(true)。否则,方法调用会失败,SDK 触发 OnError 回调,报告
ERR_ADM_START_RECORDING(1012)
错误码。 - 加入频道后调用该方法,测试的是 SDK 正在使用的音频采集和播放设备。
- 调用该方法后,必须调 StopAudioDeviceLoopbackTest 方法停止测试。
参数
- indicationInterval
-
SDK 触发 OnAudioVolumeIndication 或 OnAudioDeviceTestVolumeIndication 回调的时间间隔,单位为毫秒。 建议设置到大于 200 毫秒。不得少于 10 毫秒,否则会收不到音量回调。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。
StopAudioDeviceLoopbackTest
停止音频设备回路测试。
public abstract int StopAudioDeviceLoopbackTest();
- 该方法需要在加入频道前调用。
- 在调用 StartAudioDeviceLoopbackTest 后,必须调用该方法停止音频设备回路测试。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。