Android MediaRecorder 录制视频出现的问题及解决

1. 报错

这种情况一般是由于 初始化顺序不对  
或者是设置了分辨率手机不兼容 需要设置为
CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
            mediaRecorder.setVideoSize(profile.videoFrameWidth, profile.videoFrameHeight);
mediaRecorder.setVideoEncodingBitRate(5 * 1024 * 1024);

2. 录制视频时为横屏 需要转化为竖屏

这种情况如果不设置 默认都是为横屏的
需要设置Camera的旋转角度

camera2 = Camera.open();
camera2.setPreviewDisplay(surfaceHolder);
Camera.Parameters pa = camera2.getParameters();
camera2.setDisplayOrientation(90); //此句是重点 
camera2.setParameters(pa);
camera2.startPreview();
camera2.unlock();
mediaRecorder.setCamera(camera2);

3.录制视频结束后 播放视频时 是横屏

mediaRecorder.setOrientationHint(90); //加上此句即可

4.录制视频时视频不清晰

这个问题是由于没有自动聚焦 设置自动聚焦即可

 Camera.Parameters pa = camera2.getParameters();
 List<String> supportedFocusModes = pa.getSupportedFocusModes();
if(supportedFocusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
pa.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
}
            camera2.setDisplayOrientation(90);
            camera2.setParameters(pa);
            camera2.cancelAutoFocus();//此句加上 可自动聚焦 必须加
//                            camera2.autoFocus(null);
            camera2.startPreview();

5.录制视频结束后 播放视频不清晰

mediaRecorder.setVideoEncodingBitRate(5 * 1024 * 1024); //设置编码比特率即可

6.拍照和录像静音的方法

拍照静音 比较简单
takePhoto设置第一个参数 为null即可
当然 只适用于一部分机型

录像静音 貌似比较复杂 还没找到解决方法
看到网上说的方法
方案一:拍摄开始时设置系统音频流静默并调整音量为0,结束时恢复;
方案二:找到提示音文件,通过改名/移动等方法让发音失灵,由于音频文件在系统中,所以需要root权限,该方案对用户要求比较高,不考虑;

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值