【问题标题】:Android camera2 delay between the video to the soundAndroid camera2 视频到声音之间的延迟
【发布时间】:2016-04-20 09:23:00
【问题描述】:

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

一切正常,但是当我在录制后(从 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);

我怎样才能让它与声音一起工作?

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

感谢您的帮助

【问题讨论】:

标签: android android-mediarecorder camera2


【解决方案1】:

首先,尝试使用 CamcorderProfile API 将 MediaRecorder 值设置为 MediaRecorder.setProfile

从支持的配置文件列表中选择你想要的分辨率,设置音视频源后调用setProfile会设置推荐的音视频编码设置。

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

【讨论】:

    猜你喜欢
    • 2020-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-08
    • 2020-01-07
    • 2013-12-15
    • 2011-12-27
    • 1970-01-01
    相关资源
    最近更新 更多