2

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);

サウンドで動作させるにはどうすればよいですか?

愚かな解決策は、デバイスを再起動することです。誰かがなぜそれが起こっているのか知っていますか?

助けてくれてありがとう

4

1 に答える 1

0

まず、CamcorderProfile API を使用して MediaRecorder.setProfile で MediaRecorder 値を設定してみてください

サポートされているプロファイルのリストから必要な解像度を選択すると、オーディオ ソースとビデオ ソースを設定した後に setProfile を呼び出すと、推奨されるオーディオ/ビデオ エンコーディング設定が設定されます。

また、MIC ではなく、 CAMCORDERオーディオ ソースを使用する必要がありますが、録音が中断されることはありません。

于 2016-04-20T20:43:00.600 に答える