基于SnapDragonBoard410c的视频录制出现分辨率变化的原因

来源:互联网 发布:淘宝上海故事披肩 编辑:程序博客网 时间:2024/04/30 19:06

某天搞来一块410c开发板开始录制的时候报我MediaRecorder: start failed错误。
经过一番折腾,才发现是分辨率的问题。
事情是这个样子的:
按正常流程,在录制前,我们需要设置camera的分辨率和录制的分辨率。
也就是

Parameters parameter=camera.getParameters();parameter.setPreviewSize(1280,720);//以及mRecorder.setVideoSize(1280,720);

这里有个问题。设置分辨率的时候值必须是设备支持的。如果设置了不支持的分辨率,运行时就会报错。
那么,怎么获得支持的分辨率呢?很简单:

Parameters parameter=camera.getParameters();List<Camera.Size> prviewSizeList = parameter.getSupportedPreviewSizes();List<Camera.Size> videoSizeList = parameter.getSupportedVideoSizes();

这里有两组分辨率。问题就在这,大部分手机这两组值是一样的。然而有部分手机却是不一样的。如果天真的使用其中一组里的值来设置预览和录制的分辨率,十有八九会有一个不支持导致错误。
所以我们需要根据两组不同的分辨率设置预览和录制。
比如我们以预览的分辨率为基准,查找出最接近的视频录制分辨率(以宽度为准):

Camera camera = Camera.open(0);Parameters parameter=camera.getParameters();List<Camera.Size> prviewSizeList = parameter.getSupportedPreviewSizes();List<Camera.Size> videoSizeList = parameter.getSupportedVideoSizes();parameter.setPreviewSize(prviewSizeList.get(0).width,prviewSizeList.get(0).height);//查找出最接近的视频录制分辨率public int bestVideoSize(int _w){        //降序排列        Collections.sort(videoSizeList, new Comparator<Camera.Size>() {            @Override            public int compare(Camera.Size lhs, Camera.Size rhs) {                if (lhs.width > rhs.width) {                    return -1;                } else if (lhs.width == rhs.width) {                    return 0;                } else {                    return 1;                }            }        });        for(int i=0;i<videoSizeList.size();i++){            if(videoSizeList.get(i).width<_w){                return i;            }        }        return 0;    }int index=bestVideoSize(prviewSizeList.get(0).width);MediaRecorder mRecorder = new MediaRecorder();mRecorder.setVideoSize(videoSizeList .get(index).width,videoSizeList .get(index).height);
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机充电宝哪种好 充电宝知名品牌 车电宝 充电宝名牌 mipow充电宝 电热宝图片 怎么重新激活充电宝 电容 电容作用 电容的作用 电容公式 电容笔 电容器公式 超级电容 电解电容 启动电容 电容器作用 电容换算 电容uf 电容正负极 贴片电容 电容符号 钽电容 电容的单位 电容电池 电动车电容 104电容 超级电容器 耦合电容 电容好坏 电容量单位 电容放电 法拉电容 电容麦 电容阻抗 电容量 电容器放电 陶瓷电容 电容英文 电容是什么 电容测量