音视频本地录制
本文主要介绍连麦过程中音视频本地录制的使用场景。
- v6.2.0 版本开始支持使用 QNMediaRecorder 进行音视频本地录制的操作
- 支持录制格式:wav、aac、mp4
- 音频 Track 添加混音时,混音数据不支持参与录制保存
- 录制 mp4 的情况下,需确保开启了保持分辨率的配置
使用方式如下:
创建 QNMediaRecorder
SDK 当前支持基于 QNLocalAudioTrack 和 QNLocalVideoTrack 的录制功能,可以通过 QNRTC.createMediaRecorder 来创建 QNMediaRecorder 对象
QNMediaRecorder mediaRecorder = QNRTC.createMediaRecorder();
mediaRecorder.setMediaRecorderListener(new QNMediaRecorderListener());
其中,QNMediaRecorderListener 为音视频本地录制回调监听,回调方法定义如下:
/**
* 媒体录制信息更新回调
*
* @param info 媒体录制信息
*/
void onRecordInfoUpdated(QNMediaRecordInfo info);
/**
* 媒体录制状态改变回调
*
* @param state 录制状态
* @param code 状态码
*/
void onRecordStateChanged(QNMediaRecorderState state, int code);
音视频本地录制的错误码可参考录制相关错误码
开始录制
需要设置录制相关配置参考如下:
- 文件路径:请确保路径完整精确到文件名和类型,存在有效且有读写权限,支持 wav、aac、mp4
- 音频源:可以设置麦克风或自定义音频,仅支持一路音频轨的设置,重复设置会被覆盖。
- 视频源:可以设置摄像头或自定义视频,仅支持一路视频轨的设置,重复设置会被覆盖。
参考代码如下:
QNLocalAudioTrack audioTrack = QNRTC.createMicrophoneAudioTrack();
QNLocalVideoTrack videoTrack = QNRTC.createCameraVideoTrack();
QNMediaRecorderConfig mediaConfig = new QNMediaRecorderConfig(filePath, audioTrack, videoTrack);
int result = mediaRecorder.startRecording(mediaConfig);
if (result != 0) {
//开始录制发生错误
}
停止录制
参考代码如下:
int result = mediaRecorder.stopRecording();
if (result != 0) {
//结束录制发生错误
}
注意事项
- 录制实现相关配置时,应当务必保证保存地址、Track 有效可用
- 建议实现 QNMediaRecorderListener 回调,对应实际状态做相应处理
- 开始录制或停止录制时,根据返回值的结果做相应的业务处理,可避免后续非预期行为
- 对自定义音视频进行录制时,应当确保音视频同步传入,否则可能存在音频录制后播放非预期的情况
示例代码
音视频本地录制场景的示例代码可参考 QNRTC-API-Examples。
文档反馈
(如有产品使用问题,请 提交工单)