如果你用 SurfaceView+MediaRecorder 录制视频,

录制开始一直报start failed 

不妨这样试一下.

今天做录制视频,一直报错start failed  并额外报了mediaRecorder.prepare(); 这行代码错误.

一通改,发现没改好,最后破釜沉舟,把这两个方法分开try了一下,没想到竟然解决了问题

 

        try {            //开始录制            mediaRecorder.prepare();        } catch (Exception e) {            LogUtils.loge("录制prepare()异常 " + e.getMessage());            e.printStackTrace();        }        try {            mediaRecorder.start();        } catch (Exception e) {            LogUtils.loge("录制start()异常 " + e.getMessage());            e.printStackTrace();        }

解决方案2: (根源问题!复现率100%)

在录制前,我们需要设置camera的分辨率和录制的分辨率.

但是! 设置分辨率的时候值必须是设备支持的。如果设置了不支持的分辨率,运行时就会报错

以下代码作用: 以预览的分辨率为基准,查找出最接近的视频录制分辨率(以宽度为准)

最后,把两个分辨率都设置成下面得出的结果, 就没问题了!

Camera.Parameters parameter=mCamera.getParameters();        List prviewSizeList = parameter.getSupportedPreviewSizes();        List videoSizeList = parameter.getSupportedVideoSizes();        parameter.setPreviewSize(prviewSizeList.get(0).width,prviewSizeList.get(0).height);        //降序排列        Collections.sort(videoSizeList, new Comparator() {            @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;                }            }        });        int index = 0;        for(int i=0;i

 

更多相关文章

  1. android之基于Echart的图表
  2. android osmdroid 实现谷歌地图之定位 替换为其他
  3. android 使用xmpp smack openfire实现即时通讯(一)
  4. Android(安卓)5.0学习之定义阴影
  5. Activity伪造Dialog的时候不能全屏显示
  6. Android(安卓)Camera中无法回调PictureCallback接口onPictureTak
  7. Android中TextView文字设置不同的颜色
  8. 【Android】强大的SpannableStringBuilder
  9. 在Eclipse中设置Android模拟器屏幕大小

随机推荐

  1. 解决eclipse开发的android工程在linux上
  2. 极光推送集成解决方案
  3. 从源码剖析PopupWindow 兼容Android(安卓
  4. 【开发框架】GreenDao数据库框架的搭建和
  5. android 签名相关
  6. 【Android】如何快速构建Android(安卓)De
  7. Android(安卓)上从外部应用注入按键事件
  8. ListView 0基础篇
  9. Android笔记之:App列表之下拉刷新的使用
  10. 浅谈App原生开发、混合开发及HTML5开发的