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

カメラのエラー setparameters faild

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

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

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

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


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

1public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
2    setPreviewSize(w, h);
3    mCamera.startPreview();
4}
5 
6protected void setPreviewSize(int width, int height) {
7    Camera.Parameters params = mCamera.getParameters();
8    List<Camera.Size> supported = params.getSupportedPreviewSizes();
9    if (supported != null) {
10        for (Camera.Size size : supported) {
11            if (size.width <= width && size.height <= height) {
12                params.setPreviewSize(size.width, size.height);
13                mCamera.setParameters(params);
14                break;
15            }
16        }
17    }
18}
この記事がお役に立ちましたらシェアお願いします
4,919 views

コメントを残す

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