【今更だけどandroid.hardware.Cameraを使う】Camera.Parametersの設定値 ビデオ向けの最適化

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

android.hardware.Cameraを使うことで、Android端末にあるカメラデバイスにアクセスして使うことができます。
android.hardware.Cameraは、現在では非推奨となっていますがOpenCV等ではまだまだ使われています。

Android端末に実装されているカメラデバイスは固有の性能があります。
そのため、ある端末では出来るのに別の端末では出来ないということが多々あります。
今回はCamera.Parametersのビデオ向けの最適化に関連する設定値を説明します。
下記の実装はすべて前回までに作ったクラスを修正しています。

ビデオ向けの最適化

カメラデバイスはビデオ向けの最適化が可能です。この最適化を利用することはアプリケーションが最初からビデオを撮影する意図をカメラデバイスに伝えることが可能になります。
この最適化により、MediaRecorder#startを開始するまでの時間を短縮することができます。
Camera.Parameters内にビデオ向けの最適化に関連するデータのキーは下記のとおりです。
recording-hintカメラデバイスがビデオ向けに使われるかどうかをヒントとして渡すかどうかを表すキーです。

ビデオ向けの最適化の有効化

void setRecordingHint(boolean hint)はビデオ向けの最適化の有効無効を設定するためのメソッドです。
trueを設定するとビデオ向けの最適化が有効になり、falseを設定すると無効になります。
Camera.Parameters#setRecordingHintはCamera#startPreviewよりも先に呼び出す必要があります。

    private void updateCameraParameters() {
        Camera.Parameters parameters = mCamera.getParameters();
        parameters.setRecordingHint(true);
        mCamera.setParameters(parameters);
    }