camera多次调用出现错误解决方法
因为项目中有用到相机拍照功能,所以研究了下camera。
在实践的过程中发现两个问题:
1、用模拟器启动不了camera,提示:java.lang.runtimeException:setparameters failed.....
因为parameters.setPictureSize(320, 480)(设置分辨率)的参数有误,
如果不清楚分辨率可以却掉这句话,再运行就OK 了。
如果真的想看分辨率可以看logcat日志上面有写:getParameters(....)里面就是一些相关的参数。
2、连续两次以上的拍照,会出现异常:java.lang.RuntimeException:fail to connect to camera service。
因为没有对camera进行释放,或者说系统有自动释放功能但是还没有被处理。可以通过手动释放:
/**
* 停止预览
*/
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
mCamera.stopPreview();
mCamera.release();//加上这句,就OK!
mCamera=null;
}