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]+"=====================================");
}
}
记在此,以备

本文记录了解决Android应用中使用相机时遇到的帧率设置问题,特别是在华为Android4.4设备上出现的setParameterfailed错误。通过逐个测试参数设置,最终定位问题并提供了获取支持帧率范围的方法。
导致setParameter()failed出错&spm=1001.2101.3001.5002&articleId=70318568&d=1&t=3&u=4ec3a8521a194e9a8c4f7c2be959a8e5)
955

被折叠的 条评论
为什么被折叠?



