0

また、市場でアプリを立ち上げました。ユーザーの 1 人から、カメラを開くときにエラーが発生したというエラー メッセージを受け取りました。

私も同じ問題を抱えてる

だから私はこのコードを置き換えようとします:

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
        // If your preview can change or rotate, take care of those events here.
        // Make sure to stop the preview before resizing or reformatting it.



         Log.d(TAG, "surfaceChanged to " + "," + w + "," +  h);

        if (mHolder.getSurface() == null){
          // preview surface does not exist
          return;
        }

        // stop preview before making changes
        try {
            mCamera.stopPreview();
        } catch (Exception e){
          // ignore: tried to stop a non-existent preview
        }

        // set preview size and make any resize, rotate or
        // reformatting changes here

        // start preview with new settings
        try {
            mCamera.setPreviewDisplay(mHolder);
            mCamera.startPreview();

        } catch (Exception e){
            Log.d(TAG, "Error starting camera preview: " + e.getMessage());
        }
    }

このコードに:

   public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
        Camera.Parameters parameters = mCamera.getParameters();
  //      List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes();

        // You need to choose the most appropriate previewSize for your app
        Camera.Size previewSize = parameters.getPreferredPreviewSizeForVideo();   // .... select one of previewSizes here

        parameters.setPreviewSize(previewSize.width, previewSize.height);
        mCamera.setParameters(parameters);
        mCamera.startPreview();
    }

NullPointerException エラーが発生しました

横向きだけだから表示変化は気にならない

android:screenOrientation="landscape"
4

1 に答える 1

1

リンクされた記事ではRuntimeException、サポートされていないプレビュー サイズを設定しようとしたために例外が発生しました。しかし、あなたの場合、それはNullException. おそらく、mCamera オブジェクトが初期化されていません。

于 2013-06-02T16:04:37.313 に答える