RtcDeviceManager
RTC 设备管理类,用来管理系统中的音、视频设备。
enumerateAudioPlaybackDevices
获取系统中所有的播放设备列表。
Future<List<MediaDeviceInfo>> enumerateAudioPlaybackDevices()
返回值
- 方法调用成功,返回一个 MediaDeviceInfo 对象,包含所有音频播放设备的设备 ID 和设备名称。
- 方法调用失败:null。
enumerateAudioRecordingDevices
获取系统中所有的音频采集设备列表。
Future<List<MediaDeviceInfo>> enumerateAudioRecordingDevices()
返回值
- 方法调用成功,返回一个 MediaDeviceInfo 对象,包含所有音频采集设备的设备 ID 和设备名称。
- 方法调用失败:null。
setAudioPlaybackDevice
指定播放设备。
Future<void> setAudioPlaybackDevice(String deviceId)
参数
- deviceId
-
通过 deviceID 指定播放设备。由 enumerateAudioPlaybackDevices 获取。插拔设备不会影响 deviceId。
setAudioRecordingDevice
指定音频采集设备。
Future<void> setAudioRecordingDevice(String deviceId)
参数
- deviceId
-
音频采集设备的 Device ID。可通过 enumerateAudioRecordingDevices 获取。插拔设备不会影响 deviceId。
startAudioPlaybackDeviceTest
启动音频播放设备测试。
Future<void> startAudioPlaybackDeviceTest(String testAudioFilePath)
该方法测试音频播放设备是否能正常工作。启动测试后,SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
调用该方法后,SDK 会每隔 100 ms 触发一次 audioVolumeIndication 回调,报告 uid = 1 及播放设备的音量信息。
该方法测试音频播放设备是否能正常工作。启动测试后,SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
- 在加入频道前调用该方法,SDK 触发 audioVolumeIndication 和 audioDeviceTestVolumeIndication 回调,其中:
- audioVolumeIndication 报告
uid = 1
和volume
。 - audioDeviceTestVolumeIndication 报告
volumeType = AudioTestPlaybackVolume(1)
和volume
。
- audioVolumeIndication 报告
- 在加入频道后调用该方法,SDK 触发 audioDeviceTestVolumeIndication 回调,报告 AudioTestPlaybackVolume 和
volume
。
- 加入频道后调用该方法,测试的是 SDK 正在使用的音频播放设备。
- 调用该方法后,必须调 stopAudioPlaybackDeviceTest 方法停止测试
参数
- testAudioFilePath
- 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式。
stopAudioPlaybackDeviceTest
停止音频播放设备测试。
Future<void> stopAudioPlaybackDeviceTest()
该方法停止音频播放设备测试。调用 startAudioPlaybackDeviceTest 后,必须调用该方法停止测试。
startAudioRecordingDeviceTest
启动音频采集设备测试。
Future<void> startAudioRecordingDeviceTest(int indicationInterval)
该方法测试音频采集设备是否能正常工作。调用该方法后,SDK 会按设置的时间间隔触发 audioVolumeIndication 回调,报告 uid = 0 及采集设备的音量信息。
该方法测试音频采集设备是否能正常工作。
- 在加入频道前调用该方法,SDK 触发 audioVolumeIndication 和 audioDeviceTestVolumeIndication 回调,其中:
- audioVolumeIndication 报告
uid = 0
和volume
。 - audioDeviceTestVolumeIndication 报告
volumeType = AudioTestRecordingVolume(0)
和volume
。
- audioVolumeIndication 报告
- 在加入频道后调用该方法,SDK 触发 audioDeviceTestVolumeIndication 回调,报告
volumeType = AudioTestRecordingVolume(0)
和volume
。
- 加入频道后调用该方法前,请确保音频采集设备处于开启状态,即 enableLocalAudio(true)。否则,方法调用会失败,SDK 触发 error 回调,报告
ERR_ADM_START_RECORDING(1012)
错误码。 - 加入频道后调用该方法,测试的是 SDK 正在使用的音频采集设备。
- 调用该方法后,必须调 stopAudioRecordingDeviceTest 方法停止测试。
参数
- indicationInterval
-
SDK 返回 audioVolumeIndication 或 audioDeviceTestVolumeIndication 回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。不得少于 10 毫秒,否则会收不到音量回调。
stopAudioRecordingDeviceTest
停止音频采集设备测试。
Future<void> stopAudioRecordingDeviceTest()
该方法停止音频采集设备测试。调用 startAudioRecordingDeviceTest 后,必须调用该方法停止测试。
getAudioPlaybackDevice
获取当前音频播放设备。
Future<String?> getAudioPlaybackDevice()
返回值
当前音频播放设备。
getAudioPlaybackDeviceInfo
根据设备 ID 和设备名称获取播放设备。
Future<MediaDeviceInfo?> getAudioPlaybackDeviceInfo()
返回值
MediaDeviceInfo 对象,包含音频播放设备的设备 ID 和设备名称。
getAudioRecordingDevice
获取当前音频采集设备。
Future<String?> getAudioRecordingDevice()
返回值
当前音频采集设备。
getAudioRecordingDeviceInfo
根据设备名称和设备 ID 获取音频采集设备信息。
Future<MediaDeviceInfo?> getAudioRecordingDeviceInfo()
返回值
MediaDeviceInfo 对象,包含音频采集设备的设备 ID 和设备名称。
startAudioDeviceLoopbackTest
开始音频设备回路测试。
Future<void> startAudioDeviceLoopbackTest(int indicationInterval)
该方法测试音频采集和播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地音频,然后使用音频播放设备播放出来。SDK 会按设置的时间间隔触发两个 audioVolumeIndication 回调,分别报告音频采集设备(uid = 0)和音频播放设置(uid = 1)的音量信息。
- 该方法需要在加入频道前调用。
- 该方法仅在本地进行音频设备测试,不涉及网络连接。
该方法测试音频采集和播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地音频,然后使用音频播放设备播放出来。
- 在加入频道前调用该方法,SDK 触发 audioVolumeIndication 和 audioDeviceTestVolumeIndication 回调,每个回调触发两次,其中:
- audioVolumeIndication 分别报告
uid = 0
和volume
,以及uid = 1
和volume
。 - audioDeviceTestVolumeIndication 分别报告
volumeType = AudioTestRecordingVolume(0)
和volume
,以及volumeType = AudioTestPlaybackVolume(1)
和volume
。
- audioVolumeIndication 分别报告
- 在加入频道后调用该方法,SDK 触发两个 audioDeviceTestVolumeIndication 回调,分别报告
volumeType = AudioTestRecordingVolume(0)
和volume
,以及volumeType = AudioTestPlaybackVolume(1)
和volume
。
- 该方法仅在本地进行音频设备测试,不涉及网络连接。
- 加入频道后调用该方法前,请确保音频采集设备处于开启状态,即 enableLocalAudio(true)。否则,方法调用会失败,SDK 触发 error 回调,报告
ERR_ADM_START_RECORDING(1012)
错误码。 - 加入频道后调用该方法,测试的是 SDK 正在使用的音频采集和播放设备。
- 调用该方法后,必须调 stopAudioDeviceLoopbackTest 方法停止测试。
参数
- indicationInterval
-
SDK 触发 audioVolumeIndication 回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。不得少于 10 毫秒,否则会收不到 audioVolumeIndication 回调。
stopAudioDeviceLoopbackTest
停止音频设备回路测试。
Future<void> stopAudioDeviceLoopbackTest()
- 该方法需要在加入频道前调用。
- 在调用 startAudioDeviceLoopbackTest 后,必须调用该方法停止音频设备回路测试。
setAudioPlaybackDeviceVolume
设置播放设备音量。
Future<void> setAudioPlaybackDeviceVolume(int volume)
参数
- volume
- 播放设备音量。取值可在 [0,255]。
getAudioPlaybackDeviceVolume
获取播放设备音量。
Future<int?> getAudioPlaybackDeviceVolume()
返回值
播放设备音量。取值范围 [0,255]。
setAudioRecordingDeviceVolume
设置音频采集设备音量。
Future<void> setAudioRecordingDeviceVolume(int volume)
参数
- volume
- 音频采集设备音量。取值范围 [0,255]。
getAudioRecordingDeviceVolume
获取音频采集设备音量。
Future<int?> getAudioRecordingDeviceVolume()
返回值
音频采集设备音量。取值范围 [0,255]。
setAudioPlaybackDeviceMute
设置播放设备静音。
Future<void> setAudioPlaybackDeviceMute(bool mute)
参数
- mute
-
是否设置播放设备为静音:
true
: 播放设备设为静音。false
: 播放设备不设为静音。
getAudioPlaybackDeviceMute
获取当前播放设备静音状态。
Future<bool?> getAudioPlaybackDeviceMute()
返回值
true
: 播放设备为静音状态。false
: 播放设备为非静音状态。
setAudioRecordingDeviceMute
设置当前音频采集设备静音。
Future<void> setAudioRecordingDeviceMute(bool mute)
参数
- mute
-
是否设置音频采集设备静音:
true
: 采集设备静音。false
: 采集设备为非静音。
getAudioRecordingDeviceMute
获取当前音频采集设备静音状态。
Future<bool?> getAudioRecordingDeviceMute()
返回值
true
: 采集设备为静音状态。false
: 采集设备为非静音状态。
enumerateVideoDevices
获取系统中所有的视频设备列表。
Future<List<MediaDeviceInfo>> enumerateVideoDevices()
返回值
- 方法调用成功:返回一个 MediaDeviceInfo 对象,其中包含系统中所有视频设备。
- 方法调用失败: null。
followSystemPlaybackDevice
设置 SDK 使用的音频播放设备跟随系统默认的音频播放设备。
Future<void> followSystemPlaybackDevice(bool enable);
参数
- enable
- 是否跟随系统默认的音频播放设备:
- true:跟随。当系统默认音频播放设备发生改变时,SDK 立即切换音频播放设备。
- false:不跟随。只有当 SDK 使用的音频播放设备被移除后,SDK 才切换至系统默认的音频播放设备。
followSystemRecordingDevice
设置 SDK 使用的音频播放设备跟随系统默认的音频播放设备。
Future<void> followSystemRecordingDevice(bool enable);
- enable
- 是否跟随系统默认的音频播放设备:
- true:跟随。当系统默认音频播放设备发生改变时,SDK 立即切换音频播放设备。
- false:不跟随。只有当 SDK 使用的音频播放设备被移除后,SDK 才切换至系统默认的音频播放设备。
setVideoDevice
通过设备 ID 指定视频采集设备。
Future<void> setVideoDevice(String deviceId)
参数
- deviceId
-
设备 ID。可通过调用 enumerateVideoDevices 方法获取。
getVideoDevice
获取当前使用的视频采集设备。
Future<String?> getVideoDevice()
返回值
视频采集设备。