实时音视频

  • 实时音视频 > 使用指南 > Android >音视频本地录制

    音视频本地录制

    最近更新时间: 2024-06-28 17:54:33

    本文主要介绍连麦过程中音视频本地录制的使用场景。

    • v6.2.0 版本开始支持使用 QNMediaRecorder 进行音视频本地录制的操作
    • 支持录制格式:wav、aac、mp4
    • 音频 Track 添加混音时,混音数据不支持参与录制保存
    • 录制 mp4 的情况下,需确保开启了保持分辨率的配置

    使用方式如下:

    创建 QNMediaRecorder

    SDK 当前支持基于 QNLocalAudioTrackQNLocalVideoTrack 的录制功能,可以通过 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) {
        //结束录制发生错误
    }
    

    注意事项

    1. 录制实现相关配置时,应当务必保证保存地址、Track 有效可用
    2. 建议实现 QNMediaRecorderListener 回调,对应实际状态做相应处理
    3. 开始录制或停止录制时,根据返回值的结果做相应的业务处理,可避免后续非预期行为
    4. 对自定义音视频进行录制时,应当确保音视频同步传入,否则可能存在音频录制后播放非预期的情况

    示例代码

    音视频本地录制场景的示例代码可参考 QNRTC-API-Examples

    以上内容是否对您有帮助?
  • Qvm free helper
    Close