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 及播放设备的音量信息。
参数
- testAudioFilePath
- 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式。
- 支持文件格式: wav、mp3、m4a、aac。
- 支持文件采样率: 8000、16000、32000、44100、48000。
stopAudioPlaybackDeviceTest
停止音频播放设备测试。
Future<void> stopAudioPlaybackDeviceTest()
该方法停止音频播放设备测试。调用 startAudioPlaybackDeviceTest 后,必须调用该方法停止测试。
startAudioRecordingDeviceTest
启动音频采集设备测试。
Future<void> startAudioRecordingDeviceTest(int indicationInterval)
该方法测试音频采集设备是否能正常工作。调用该方法后,SDK 会按设置的时间间隔触发 audioVolumeIndication 回调,报告 uid = 0 及采集设备的音量信息。
参数
- indicationInterval
- SDK 触发 audioVolumeIndication 回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。不得小于 10 毫秒,否则会收不到 audioVolumeIndication 回调。
- testAudioFilePath
- 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式。
- 支持文件格式: wav、mp3、m4a、aac。
- 支持文件采样率: 8000、16000、32000、44100、48000。
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)的音量信息。
- 该方法需要在加入频道前调用。
- 该方法仅在本地进行音频设备测试,不涉及网络连接。
参数
- 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。
setVideoDevice
通过设备 ID 指定视频采集设备。
Future<void> setVideoDevice(String deviceId)
参数
- deviceId
设备 ID。可通过调用 enumerateVideoDevices 方法获取。
getVideoDevice
获取当前使用的视频采集设备。
Future<String?> getVideoDevice()
返回值
视频采集设备。