Android setPreviewFrameRate()导致setParameter()failed出错

来源:互联网 发布:网络诽谤罪判刑案例 编辑:程序博客网 时间:2024/06/05 09:32

           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]+"=====================================");  
            }  

}  

记在此,以备


0 0