Android: 当按钮被点击时切换摄像头
Android: 当按钮被点击时切换摄像头
我有一个叫做switchCamera的方法,我试图在点击按钮时从前置摄像头切换到后置摄像头,并且希望能够平滑过渡。但是当我调用这个方法时,我的应用程序会冻结 - 我知道我做错了什么。有人可以帮帮我吗?
非常感谢任何帮助。
public void switchCamera(){ int camNum = 0; camNum = Camera.getNumberOfCameras(); int camBackId = Camera.CameraInfo.CAMERA_FACING_BACK; int camFrontId = Camera.CameraInfo.CAMERA_FACING_FRONT; Camera.CameraInfo currentCamInfo = new Camera.CameraInfo(); //如果相机正在运行 if (camera != null){ //并且有多于一个摄像头 if (camNum > 1){ //停止当前相机 camera.stopPreview(); camera.setPreviewCallback(null); //camera.takePicture(null, null, PictureCallback); camera.release(); camera = null; //停止surfaceHolder? if (currentCamInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT){ //切换到后置摄像头 camera=Camera.open(camBackId); } else{ //切换到前置摄像头 camera=Camera.open(camFrontId); } //重新打开相机 //指定surface? try { camera.setPreviewDisplay(surfaceHolder); camera.setPreviewCallback((PreviewCallback) this); camera.startPreview(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }