0

アプリで前面カメラと背面カメラを切り替える必要があります。私の問題は、前面カメラを開くか、背面カメラを開くことができることです。しかし、カメラが既に開いていると、プレビューに表示されるものを切り替えることはできません。概念実証として、既に開いている背面カメラのプレビューを前面に切り替えようとしています。次のようなメソッド toggleCamera を作成しようとしています。

public void toggleCamera(){
    mCamera.stopPreview();
    int frontCameraId = 0;
    for (int camNo = 0; camNo < Camera.getNumberOfCameras(); camNo++) {
    CameraInfo camInfo = new CameraInfo();
        Camera.getCameraInfo(camNo, camInfo);
        if (camInfo.facing==(Camera.CameraInfo.CAMERA_FACING_FRONT)) {
            frontCameraId = camNo;
        }
    }
    mCamera.release();
    mCamera = Camera.open(frontCameraId);
    mCamera.startPreview();
    Log.d(TAG + "Restarting camera", ""+frontCameraId);
}

現在、これが発生するとカメラがフリーズします。cameraParameter "camera-id" を設定する必要があるいくつかの場所を見てきましたが、これはうまくいきませんでした。これをサポートするドキュメントも見つかりませんでした。

4

2 に答える 2

1

私はこれをオンフライでバック/フロントカメラを切り替えて実装するだけで、あなたにも役立つことを願っています.

于 2013-05-24T14:10:32.483 に答える
0

カメラを切り替えるときは、新しい Camera オブジェクトを作成しているため、 PreviewDisplay と PreviewListener を再度設定する必要があります (この回答で見られるように: MediaRecorder android を使用するときに前面カメラと背面カメラを切り替える方法)。

mCamera = Camera.open(frontCameraId);
// added code 
mCamera.setPreviewDisplay([reference to your SurfaceHolder object]);
mCamera.setPreviewCallback([reference to your Camera.PreviewCallback object]);
// end added code
mCamera.startPreview();
Log.d(TAG + "Restarting camera", ""+frontCameraId);
于 2013-02-18T18:46:11.573 に答える