ByteRTCAudioDeviceManager class
- Inheritance
-
- Object
- NativeClass
- ByteRTCAudioDeviceManager
Properties
-
$resource
→ NativeResource
-
no setterinherited
-
hashCode
→ int
-
The hash code for this object.
no setterinherited
-
ready
→ Future<void>
-
Whether the instance is initialized
no setterinherited
-
runtimeType
→ Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
destroy()
→ void
-
inherited
-
enumerateAudioCaptureDevices()
→ FutureOr<ByteRTCDeviceCollection>
-
@detail api
@author dixing
@brief 获取音频采集设备列表。
@return 音频采集设备列表。详见 ByteRTCDeviceCollection{@link #ByteRTCDeviceCollection}。
等待超时后会返回空列表。超时时间默认为 10 s。建议通过 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 监听到 ByteRTCMediaDeviceListUpdated 后,再次调用本接口获取。
@note 你可以在收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 了解设备变更后,重新调用本接口以获得新的设备列表。
-
enumerateAudioPlaybackDevices()
→ FutureOr<ByteRTCDeviceCollection>
-
@detail api
@author dixing
@brief 获取当前系统内音频播放设备列表。
@return 所有音频播放设备的列表,参看 ByteRTCDeviceCollection{@link #ByteRTCDeviceCollection}。
等待超时后会返回空列表。超时时间默认为 10 s。建议通过 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 监听到 ByteRTCMediaDeviceListUpdated 后,再次调用本接口获取。
@note 你可以在收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 了解设备变更后,重新调用本接口以获得新的设备列表。
-
followSystemCaptureDevice(BOOL followed)
→ FutureOr<void>
-
@detail api
@author yezijian.me
@brief 设置音频采集路由是否跟随系统。
@param followed
- true: 跟随。此时,调用 setAudioCaptureDevice:{@link #ByteRTCAudioDeviceManager#setAudioCaptureDevice} 会失败。默认值。
- false: 不跟随系统。此时,可以调用 setAudioCaptureDevice:{@link #ByteRTCAudioDeviceManager#setAudioCaptureDevice} 进行设置。
-
followSystemPlaybackDevice(BOOL followed)
→ FutureOr<void>
-
@detail api
@author yezijian.me
@brief 设置音频播放路由是否跟随系统。
@param followed
- true: 跟随。此时,调用 setAudioPlaybackDevice:{@link #ByteRTCAudioDeviceManager#setAudioPlaybackDevice} 会失败。默认值。
- false: 不跟随系统。此时,可以调用 setAudioPlaybackDevice:{@link #ByteRTCAudioDeviceManager#setAudioPlaybackDevice} 进行设置。
-
getAudioCaptureDevice(NSString deviceID)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 获取当前音频采集设备。
@param deviceID 音频采集设备 ID。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
-
getAudioCaptureDeviceMute(bool mute)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 获取当前音频采集设备是否静音的信息。
@param mute
- true:静音
- false:非静音
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
-
getAudioCaptureDeviceVolume(int volume)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 获取当前音频采集设备音量
@param volume 音频采集设备音量,取值范围是
0,255
- 0,25 接近无声;
- 25,75 为低音量;
- 76,204 为中音量;
- 205,255 为高音量。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
-
getAudioPlaybackDevice(NSString deviceID)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 获取当前音频播放设备。
@param deviceID 设备 ID
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
-
getAudioPlaybackDeviceMute(bool mute)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 获取当前音频播放设备是否静音的信息。
@param mute
- true:静音
- false:非静音
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
-
getAudioPlaybackDeviceVolume(int volume)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 获取当前音频播放设备音量
@param volume 音频播放设备音量,取值范围是
0,255
- 0,25 接近无声;
- 25,75 为低音量;
- 76,204 为中音量;
- 205,255 为高音量。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
-
initAudioCaptureDeviceForTest(NSString deviceID)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 尝试初始化音频采集设备,以检测设备不存在、权限被拒绝/禁用等异常问题。
@param deviceID 设备索引号
@return 设备状态错误码
- 0: 设备检测结果正常
- -1: 接口调用失败
- -2: 设备无权限,尝试初始化设备失败
- -3: 设备不存在,当前没有设备或设备被移除时返回
- -4: 设备音频格式不支持
- -5: 其它原因错误
@note
- 该接口需在进房前调用;
- 检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。
-
initAudioPlaybackDeviceForTest(NSString deviceID)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 尝试初始化音频播放设备,以检测设备不存在、权限被拒绝/禁用等异常问题。
@param deviceID 设备索引号
@return 设备状态错误码
- 0: 设备检测结果正常
- -1: 接口调用失败
- -2: 设备无权限,尝试初始化设备失败
- -3: 设备不存在,当前没有设备或设备被移除时返回
- -4: 设备音频格式不支持
- -5: 其它原因错误
@note
- 该接口需在进房前调用;
- 检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。
-
nativeCall<T>(String method, [List? args, NativeMethodMeta? meta])
→ Future<T>
-
Call instance method
inherited
-
noSuchMethod(Invocation invocation)
→ dynamic
-
Invoked when a nonexistent method or property is accessed.
inherited
-
sendInstanceGet<T>(String property)
→ Future<T>
-
Get instance property
inherited
-
sendInstancePropertiesGet(dynamic nativeClass)
→ Future<Map<String, dynamic>>
-
Get instance properties
inherited
-
sendInstanceSet(String property, dynamic value)
→ Future<void>
-
Set instance property
inherited
-
setAudioCaptureDevice(NSString deviceID)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 设置音频采集设备。
@param deviceID 音频采集设备 ID。你可调用 enumerateAudioCaptureDevices{@link #ByteRTCAudioDeviceManager#EnumerateAudioCaptureDevices} 获取可用设备列表。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note 当你调用 followSystemCaptureDevice:{@link #ByteRTCAudioDeviceManager#followSystemCaptureDevice} 设置音频采集设备跟随系统后,将无法调用此接口设置音频采集设备。
-
setAudioCaptureDeviceMute(bool mute)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 设置当前音频采集设备静音状态,默认为非静音。
@param mute
- true:静音
- false:非静音
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法用于静音整个系统的音频采集。你也可以仅对麦克风采集到的音频信号做静音处理,而不影响媒体播放器的音乐声音,具体参看 muteAudioCapture:{@link #ByteRTCEngine#muteAudioCapture} 方法说明。
- 设该方法为 true 静音后仍可通过 setAudioCaptureDeviceVolume:{@link #ByteRTCAudioDeviceManager#setAudioCaptureDeviceVolume} 调整采集音量,调整后的音量会在取消静音后生效。
-
setAudioCaptureDeviceVolume(int volume)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 设置当前音频采集设备音量
@param volume 音频采集设备音量,取值范围为
0,255。
- 0,25 接近无声;
- 25,75 为低音量;
- 76,204 为中音量;
- 205,255 为高音量。
@return 方法调用结果
- 0:方法调用成功。将影响 rtcEngine:onLocalAudioPropertiesReport:{@link #ByteRTCEngineDelegate#rtcEngine:onLocalAudioPropertiesReport} 回调的音量信息。
- < 0:方法调用失败
@note 调用 setAudioCaptureDeviceMute:{@link #ByteRTCAudioDeviceManager#setAudioCaptureDeviceMute} 设为 true 静音采集设备后的音量调节会在取消静音后生效。
-
setAudioPlaybackDevice(NSString deviceID)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 设置音频播放设备。
@param deviceID 音频播放设备 ID,可通过 enumerateAudioPlaybackDevices{@link #ByteRTCAudioDeviceManager#enumerateAudioPlaybackDevices} 获取。
@return
- 0:方法调用成功
- < 0:方法调用失败
@note 当你调用 followSystemPlaybackDevice:{@link #ByteRTCAudioDeviceManager#followSystemPlaybackDevice} 设置音频播放设备跟随系统后,将无法调用此接口设置音频播放设备。
-
setAudioPlaybackDeviceMute(bool mute)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 设置当前音频播放设备静音状态,默认为非静音。
@param mute
- true:静音
- false:非静音
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
-
setAudioPlaybackDeviceVolume(int volume)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 设置当前音频播放设备音量
@param volume 音频播放设备音量,取值范围为
0,255
- 0,25 接近无声;
- 25,75 为低音量;
- 76,204 为中音量;
- 205,255 为高音量。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
-
startAudioDeviceLoopbackTest(int indicationInterval)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 开始音频设备回路测试。
该方法测试音频采集设备和音频播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地声音并通过音频播放设备播放出来,同时会收到 rtcEngine:onLocalAudioPropertiesReport:{@link #ByteRTCEngineDelegate#rtcEngine:onLocalAudioPropertiesReport}。
@param indicationInterval 收到回调的时间间隔,单位为 ms。建议设置到大于 200 ms。最小不得少于 10 ms。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法不依赖 rtc 引擎
- 该方法必须在进房前调用。且不可与其它音频设备测试功能同时应用。
- 你需调用 stopAudioDeviceLoopbackTest{@link #ByteRTCAudioDeviceManager#stopAudioDeviceLoopbackTest} 停止测试。
- 该方法仅在本地进行音频设备测试,不涉及网络连接。
-
startAudioDeviceRecordTest(int interval)
→ FutureOr<int>
-
@hidden(iOS)
@detail api
@author dixing
@brief 开始音频采集设备和音频播放设备测试。
@param interval 测试中会收到
rtcEngine:onLocalAudioPropertiesReport: 回调,本参数指定了该周期回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法在进房前后均可调用。且不可与其它音频设备测试功能同时应用。
- 调用本接口 30 s 后,采集自动停止,并开始播放采集到的声音。录音播放完毕后,设备测试流程自动结束。你也可以在 30 s 内调用 stopAudioDeviceRecordAndPlayTest{@link #ByteRTCAudioDeviceManager#stopAudioDeviceRecordAndPlayTest} 来停止采集并开始播放此前采集到的声音。
- 调用 stopAudioDevicePlayTest{@link #ByteRTCAudioDeviceManager#stopAudioDevicePlayTest} 可以停止音频设备采集和播放测试。
- 你不应在测试过程中,调用 enableAudioPropertiesReport: 注册音量提示回调。
- 该方法仅在本地进行音频设备测试,不涉及网络连接。
-
startAudioPlaybackDeviceTest(NSString testAudioFilePath, int interval)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 启动音频播放设备测试。
该方法测试播放设备是否能正常工作。SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
@param testAudioFilePath 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持以下音频格式: mp3,aac,m4a,3gp,wav。
@param interval 音频设备播放测试音量回调的间隔
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法必须在进房前调用,且不可与其它音频设备测试功能同时应用。
- 调用 stopAudioPlaybackDeviceTest{@link #ByteRTCAudioDeviceManager#stopAudioPlaybackDeviceTest} 停止测试。
-
startAudioRecordingDeviceTest(int indicationInterval)
→ FutureOr<int>
-
@detail api
@author dixing
@brief 启动音频采集设备测试。
该方法测试音频采集设备是否能正常工作。启动测试后,会收到 rtcEngine:onLocalAudioPropertiesReport:{@link #ByteRTCEngineDelegate#rtcEngine:onLocalAudioPropertiesReport} 回调上报的音量信息。
@param indicationInterval 获取回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。小于 10 毫秒行为未定义。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法不依赖 rtc 引擎
- 该方法必须在进房前调用,且不可与其它音频设备测试功能同时应用。
- 你需调用 stopAudioRecordingDeviceTest{@link #ByteRTCAudioDeviceManager#stopAudioRecordingDeviceTest} 停止测试。
-
stopAudioDeviceLoopbackTest()
→ FutureOr<int>
-
@detail api
@author dixing
@brief 停止音频设备回路测试。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法不依赖 rtc 引擎
- 调用 startAudioDeviceLoopbackTest:{@link #ByteRTCAudioDeviceManager#startAudioDeviceLoopbackTest} 后,需调用本方法停止测试。
-
stopAudioDevicePlayTest()
→ FutureOr<int>
-
@hidden(iOS)
@detail api
@author dixing
@brief 停止由调用 startAudioDeviceRecordTest:{@link #ByteRTCAudioDeviceManager#startAudioDeviceRecordTest} 开始的音频播放设备测试。
在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法依赖 rtc 引擎,只有通过成员方法 getAudioDeviceManager{@link #ByteRTCEngine#getAudioDeviceManager} 创建的 ByteRTCAudioDeviceManager,该方法才是有效的
-
stopAudioDeviceRecordAndPlayTest()
→ FutureOr<int>
-
@hidden(iOS)
@detail api
@author dixing
@brief 停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。
调用 startAudioDeviceRecordTest:{@link #ByteRTCAudioDeviceManager#startAudioDeviceRecordTest} 30s 内调用本接口来停止采集并开始播放此前采集到的声音。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法依赖 rtc 引擎,只有通过成员方法 getAudioDeviceManager{@link #ByteRTCEngine#getAudioDeviceManager} 创建的 ByteRTCAudioDeviceManager,该方法才是有效的
- 调用本接口开始播放录音后,可以在播放过程中调用 stopAudioDevicePlayTest{@link #ByteRTCAudioDeviceManager#stopAudioDevicePlayTest} 停止播放。
-
stopAudioPlaybackDeviceTest()
→ FutureOr<int>
-
@detail api
@author dixing
@brief 停止音频播放设备测试。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note 调用 startAudioPlaybackDeviceTest:interval:{@link #ByteRTCAudioDeviceManager#startAudioPlaybackDeviceTest:interval} 后,需调用本方法停止测试。
-
stopAudioRecordingDeviceTest()
→ FutureOr<int>
-
@detail api
@author dixing
@brief 停止音频采集设备测试。
@return 方法调用结果
- 0:方法调用成功
- < 0:方法调用失败
@note
- 该方法不依赖 rtc 引擎
- 调用 startAudioRecordingDeviceTest:{@link #ByteRTCAudioDeviceManager#startAudioRecordingDeviceTest} 后,需调用本方法停止测试。
-
toString()
→ String
-
A string representation of this object.
inherited
-
updateResource(NativeResource resource)
→ void
-
inherited