startAudioCapture method
@detail api
@author dixing
@brief 开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。
调用该方法开启后,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartAudioCapture:info:{@link #ByteRTCEngineDelegate#rtcEngine:onUserStartAudioCapture:info} 的回调。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 若未取得当前设备的麦克风权限,调用该方法后会触发 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 回调,对应的错误码为 ByteRTCMediaDeviceError.ByteRTCMediaDeviceErrorDeviceNoPermission = 1。
- 调用 stopAudioCapture{@link #ByteRTCEngine#stopAudioCapture} 可以关闭音频采集设备,否则,SDK 只会在销毁引擎的时候自动关闭设备。
- 由于不同硬件设备初始化响应时间不同,频繁调用 stopAudioCapture{@link #ByteRTCEngine#stopAudioCapture} 和本接口闭麦/开麦可能出现短暂无声问题,建议使用 publishStreamAudio:{@link #ByteRTCRoom#publishStreamAudio} 实现临时闭麦和重新开麦。
- 创建引擎后,无论是否发布音频数据,你都可以调用该方法开启音频采集,并且调用后方可发布音频。
- 如果需要从自定义音频采集切换为内部音频采集,你必须先停止发布流,调用 setAudioSourceType:{@link #ByteRTCEngine#setAudioSourceType} 关闭自定义采集,再调用此方法手动开启内部采集。
Implementation
FutureOr<int> startAudioCapture() async {
return await nativeCall('startAudioCapture', []);
}