MediaRecorder
用于在客户端录制音视频流。
该类支持录制以下内容:
- 本地麦克风采集且经 SDK 编码为 AAC 格式的音频。
- 本地摄像头采集且经 SDK 编码的视频。
注意: 通信场景下,如果频道内有 SDK 版本低于 3.0.0 的用户,该功能不可用。
getMediaRecorder
获取 MediaRecorder 对象。
static MediaRecorder getMediaRecorder(RtcEngine engine, {MediaRecorderObserver? callback})
注: 该方法需要在初始化 RtcEngine 对象后调用。
参数
- engine
- RtcEngine 对象。
- callback
- 音视频录制事件。详见 MediaRecorderObserver。
返回值
startRecording
开启本地音视频流录制。
Future<void> startRecording(MediaRecorderConfiguration config);
该方法录制的是本地麦克风采集的、编码为 AAC 格式的音频或本地摄像头采集的、编码后的视频。只有当检测到可录制的音视频流时,才能成功生成录制文件; 当没有可录制的音视频或录制中的音视频流中断超过 5 秒后,SDK 会停止录制, 并触发 onRecorderStateChanged(Error, NoStream) 回调。
注意: 该方法需要在加入频道后调用。
参数
- config
- 音视频流录制配置。详见 MediaRecorderConfiguration。
返回值
stopRecording
停止本地音视频流录制。
Future<void> stopRecording();
注意: 调用 startRecording 后,如果要停止录制,必须调用该方法停止录制;否则,生成的录制文件可能无法正常播放。
返回值
- 0(ERR_OK): 方法调用成功
- < 0: 方法调用失败:
- -7(ERR_NOT_INITIALIZED): RtcEngine 尚未初始化就调用方法。
releaseRecorder
释放 MediaRecorder 对象。
Future<void> releaseRecorder();
该方法释放 MediaRecorder 对象使用的 RtcEngine 对象和其他所有资源。调用该方法后,如果需要再次开启录制,需要重新调用 getMediaRecorder 获取 MediaRecorder 对象。