カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

カメラのエラー setparameters faild

この記事は最終更新日から1年以上経過しています。

android/1683で紹介していた方法で
エラーが発生したので修正しました。

surfaceChanged内のsetPreviewSizeメソッドでエラー発生
元は以下のようなコード

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    Camera.Parameters parameters = mCamera.getParameters();
    parameters.setPreviewSize(w, h);
    mCamera.setParameters(parameters);
    mCamera.startPreview();
}


サポートしていないプレビューサイズだったことが原因
以下のように修正しました。

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    setPreviewSize(w, h);
    mCamera.startPreview();
}

protected void setPreviewSize(int width, int height) {
    Camera.Parameters params = mCamera.getParameters();
    List<Camera.Size> supported = params.getSupportedPreviewSizes();
    if (supported != null) {
        for (Camera.Size size : supported) {
            if (size.width <= width && size.height <= height) {
                params.setPreviewSize(size.width, size.height);
                mCamera.setParameters(params);
                break;
            }
        }
    }
}
この記事がお役に立ちましたらシェアお願いします
4,860 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です