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 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权限,该方案对用户要求比较高,不考虑;

你可能感兴趣的:(开发中遇到的问题)