Android 如何在前后摄像头之间切换?

Android 如何在前后摄像头之间切换?,android,android-camera,Android,Android Camera,我需要在我的应用程序中在前后摄像头之间切换。我的问题是,我可以打开前向摄像头,也可以打开后向摄像头。但一旦相机已经打开,我就无法切换预览中显示的内容。作为概念证明,我只是想让我已经打开的后向摄像头预览切换到前向。 我正在尝试编写一个方法toggleCamera,它看起来像这样: public void toggleCamera(){ mCamera.stopPreview(); int frontCameraId = 0; for (int camNo = 0; camN

我需要在我的应用程序中在前后摄像头之间切换。我的问题是,我可以打开前向摄像头,也可以打开后向摄像头。但一旦相机已经打开,我就无法切换预览中显示的内容。作为概念证明,我只是想让我已经打开的后向摄像头预览切换到前向。 我正在尝试编写一个方法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);
}
public void toggleCamera(){
mCamera.stopPreview();
int frontCameraId=0;
对于(int-camNo=0;camNo

现在,当这种情况发生时,相机会冻结。我在一些地方看到,我应该设置cameraParameter“camera id”,但这对我来说不起作用,而且我没有找到支持这一点的文档。

切换相机时,您需要再次设置PreviewDisplay和PreviewListener(如此答案所示:),因为您正在创建一个新的相机对象:

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);

我只是在希望它也能帮助你的帮助下实现这一点