mMediaRecorder = new MediaRecorder();
// Step 1: Unlock and set camera to MediaRecorder
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
// Step 2: Set sources
// activate this for recording with sound\
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setoutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setVideoSize(getMaxSupportedVideoSize().width,getMaxSupportedVideoSize().height);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
// Step 4: Set output file
mMediaRecorder.setoutputFile(getoutputMediaFile("movie"));
// Step 4: Set output file
mMediaRecorder.setoutputFile(getoutputMediaFile("movie"));
// Step 5: Set the preview output
mMediaRecorder.setPreviewdisplay(mPreview.getHolder().getSurface());
mMediaRecorder.setorientationHint(90);
以上代码工作正常但是,视频的质量与我在本机安卓摄像头拍摄的视频不一样,我使用媒体录像机录制的视频质量较差,与原生录像机相比,我怎样才能提高视频质量.
如果有人知道帮助我.谢谢
我发现如果您正在使用setCamera(并且在启动mediaRecorder之前预览相机所看到的内容),那么它将不允许您更改mediaRecorder上的质量设置.
然后当你调用mediaRecorder.start()时,它会崩溃或冻结或显示垃圾.
基本上,只要相机正在预览,就不允许MediaRecorder以与相机已有的质量不同的质量开始录制.你需要
>停止相机预览,
>带走它的预览表面
>将摄像机分配给MediaRecorder(使用setCamera)
>使用您需要的质量设置MediaRecorder
>然后重新附加预览曲面
然后当你开始录制时,一切都按预期工作.
因此,在您调用mediaRecorder.setCamera()之前,请尝试以下操作:
mCamera.stopPreview();
mCamera.setPreviewdisplay(NULL);
再深一点,做你的
mRecorder.setCamera()
那是我的解决方案.我现在可以将视频质量设置为720p(或1080p),它可以完美运行.
但是,当您停止录制时,预览也将停止.
你可能需要恢复你的
mCamera.setPreviewdisplay(mPreview.getHolder().getSurface())
以前是什么,并重新开始实际的预览.
我希望它也适合你:)
原文地址:https://www.jb51.cc/android/431089.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。