拨打视频电话时取舍关闭摄像头弹出Phone报错java.lang.RuntimeException: Fail to get camera info 或 sta

拨打视频电话时选择关闭摄像头弹出Phone报错java.lang.RuntimeException: Fail to get camera info 或 sta

拨打视频电话时选择关闭摄像头弹出Phone报错java.lang.RuntimeException: Fail to get camera info 或 startPreview failed

一般Camera调用open 以及startPreview需要确保不两次调用,如果Camera.open(); 或者camera.startPreview();连续调用了多次,将可能会发生 java.lang.RuntimeException: startPreview failed;一般可以使用boolean 全局变量来记录当前camera的状态。来保证这一点。如下函数所示:

 

private void initCamera() {

        if (!isView) {

            camera = Camera.open(); 

        }

        if (camera != null && !isView) {

            try {

                Camera.Parameters myParameters = camera.getParameters();

                myParameters.setPictureFormat(ImageFormat.JPEG);

                camera.setParameters(myParameters);        

                camera.setPreviewDisplay(holder);                    

                camera.startPreview();

            } catch (IOException e) {

                e.printStackTrace();

            }

            isView = true;

        }

    }