カメラの PreviewCall back(onPreviewFrame) を通じて MediaCodec を使用して、毎秒 30 フレームのビデオをエンコードしようとしています。エンコードしたビデオは常に非常に高速に再生されます (これは望ましくありません)。そのため、int frameCount 変数を設定してそのカウントを記憶することにより、カメラのプレビューに入るフレーム数を確認しようとしました。カメラのプレビューを 30 fps プレビューに設定しているため (以下に示すように)、私が期待しているのは 30 フレーム/秒です。返される結果は同じではありません。onPreviewFrame コールバックを 10 秒間呼び出しましたが、返される frameCount の数は約 100 フレームしかありません。300 フレームを期待しているので、これは悪いことです。カメラのパラメーターは正しく設定されていますか? これは Android のカメラ プレビュー コールバックの制限ですか? これが Android カメラのプレビュー コールバックの制限である場合、
お読みいただき、helpout にご協力いただきありがとうございます。コメントや意見をいただければ幸いです。
カメラの onPreviewFrame を使用してエンコードされたビデオの例を次に示します。
http://www.youtube.com/watch?v=I1Eg2bvrHLM&feature=youtu.be
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewFormat(ImageFormat.NV21);
parameters.setPictureSize(previewWidth,previewHeight);
parameters.setPreviewSize(previewWidth, previewHeight);
// parameters.setPreviewFpsRange(30000,30000);
parameters.setPreviewFrameRate(30);
mCamera.setParameters(parameters);
mCamera.setPreviewCallback(previewCallback);
mCamera.setPreviewDisplay(holder);