繁体   English   中英

Android camera2在视频到声音之间的延迟

[英]Android camera2 delay between the video to the sound

我正在尝试从android camera2示例录制视频

一切正常,但是当我录制后(从sd卡上)播放视频时,视频开始冻结,您只能在后台听到音频,而当音频停止时,视频开始播放而没有音频和播放时间。视频从几秒钟跳到最小(03:24)

private void setUpMediaRecorder() throws IOException {
    mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
    mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
    mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);

    mMediaRecorder.setOutputFile(getVideoFile().getAbsolutePath());
    mMediaRecorder.setVideoEncodingBitRate(10000000);
    mMediaRecorder.setVideoFrameRate(30);
    //mMediaRecorder.setMaxDuration(60000); // Set max duration 60 sec.
    mMediaRecorder.setVideoSize(mVideoSize.getWidth(), mVideoSize.getHeight());
    mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
    mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);


    int rotation = getWindowManager().getDefaultDisplay().getRotation();
    int orientation = ORIENTATIONS.get(rotation);

    if (mCameraType == 1) {
        if (orientation == 90) {
            mMediaRecorder.setOrientationHint(270);
        } else if (orientation == 270) {
            mMediaRecorder.setOrientationHint(90);
        }
    }
    else {
        mMediaRecorder.setOrientationHint(orientation);
    }
    mMediaRecorder.prepare();
}

找出没有这些限制的行:

mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);

如何使它与声音一起使用?

愚蠢的解决方案是重新启动设备。 有人知道为什么会这样吗?

感谢您的帮助

首先,请尝试使用CamcorderProfile API设置与MediaRecorder值MediaRecorder.setProfile

从受支持的配置文件列表中选择所需的分辨率,并且在设置音频和视频源之后调用setProfile时,将设置推荐的音频/视频编码设置。

您还应该使用CAMCORDER音频源,而不是MIC,但这不会导致录制中断。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM