1.最近写的一个项目用到了相机,并且我们队性能要求比较高,所以我们设置了这个参数parameters.setPreviewFrameRate(3);// 每秒3帧 每秒从摄像头里面获得3个画面
但是适配到Android4.4的华为手机的时候出了问题,setParameter failed这个错误,网上找了好久没有找到原因。这是源码
parameters.setPreviewSize(pWidth, pHeight); // 获得摄像区域的大小
/**setPreviewFrameRate手机不同,可设置的帧数的最大值和最小值不同,所以这里设置不符合适配标准*/
// parameters.setPreviewFrameRate(3);// 每秒3帧 每秒从摄像头里面获得3个画面
parameters.setPictureFormat(PixelFormat.JPEG);// 设置照片输出的格式
parameters.set("jpeg-quality", 80);// 设置照片质量
parameters.setPictureSize(pWidth, pHeight);// 设置拍出来的屏幕大小
parameters.set("orientation", "landscape");
parameters.setFocusMode(Parameters.FOCUS_MODE_AUTO);
camera.setParameters(parameters);// 把上面的设置 赋给摄像头
最后我采取了一个很笨的方法,我知道这个方法不符合一些人解决问题的思想
我把上面源码parameters.set全部注释,一个一个打开,然后发现是这个帧数的问题;
2.最后通过下面测试,获得不同手机帧数的min和max是不一样的,不能用这个方法这样的设置
List<int[]> Rate=parameters.getSupportedPreviewFpsRange();for(int j=0;j<Rate.size();j++){
int[] r=Rate.get(j);
for(int i=0;k<r.length;i++){
Loger.e("===============================================", r[i]+"=====================================");
}
}
记在此,以备