这里对这段时间以来mediarecorder的学习进行一下总结。先对mediarecorder的基本用法进行一些说明。
private void createCamera(int type){
cameraType = type;
mCamera = openCamera(type);
if (mCamera==null){
UiHelper.shortToast(this, "请尝试关闭其他相机软件再打开");
return;
}
orientation = CameraUtil.setCameraDisplayOrientation(this, 0, mCamera);
Camera.Parameters mParameters = mCamera.getParameters();
Size size = getOptimalPreviewSize(mParameters.getSupportedPreviewSizes());
curPreviewWidth = size.width;
curPreviewHeight = size.height;
mParameters.setPreviewSize(curPreviewWidth, curPreviewHeight);
// 因为CamcorderProfile是以横屏为标准的,而当前屏幕录像时竖屏。所以要把Height和Width要反过来传
// 如果支持变焦,把变焦设置为0
if (mParameters.isZoomSupported()) mParameters.setZoom(0);
// 设置为自动连续对焦
List<String> mFocusModes = mParameters.getSupportedFocusModes();
if (mFocusModes.contains(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
mParameters.setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
mSupportContinuousVideo = true;
} else {
mSupportContinuousVideo = false;
}
if (mFocusModes.contains(Parameters.FOCUS_MODE_AUTO)) {
mSupportAutoFocus = true;
} else {
mSupportAutoFocus = false;
}
mVideoFrame = getVideoFrame(mParameters.getSupportedPreviewFpsRange());
// 设置为多媒体录制,加快打开的速度
mParameters.setRecordingHint(true);
// 是否支持视频防抖,在小米4上会造成画面抖动
if (mParameters.isVideoStabilizationSupported()){
// mParameters.setVideoStabilization(true);
}
mCamera.setParameters(mParameter