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);
以上代码工作正常但是,视频的质量与我在本机安卓摄像头拍摄的视频不一样,我使用媒体录像机录制的视频质量较差,与原生录像机相比,我怎样才能提高视频质量.
如果有人知道帮助我.谢谢
最佳答案我不是Java / AndroID开发人员,我正在使用Xamarin和C#,但我遇到了同样的问题,我的解决方案应该直接适用(即使语法几乎相同).我发现如果您正在使用setCamera(并且在启动mediaRecorder之前预览相机所看到的内容),那么它将不允许您更改mediaRecorder上的质量设置.
然后当你调用mediaRecorder.start()时,它会崩溃或冻结或显示垃圾.
基本上,只要相机正在预览,就不允许MediaRecorder以与相机已有的质量不同的质量开始录制.你需要
>停止相机预览,@H_404_22@>带走它的预览表面@H_404_22@>将摄像机分配给MediaRecorder(使用setCamera)@H_404_22@>使用您需要的质量设置MediaRecorder@H_404_22@>然后重新附加预览曲面
然后当你开始录制时,一切都按预期工作.
因此,在您调用mediaRecorder.setCamera()之前,请尝试以下 *** 作:
mCamera.stopPrevIEw();@[email protected](NulL);
再深一点,做你的
mRecorder.setCamera()
那是我的解决方案.我现在可以将视频质量设置为720p(或1080p),它可以完美运行.
但是,当您停止录制时,预览也将停止.
你可能需要恢复你的
mCamera.setPrevIEwdisplay(mPrevIEw.getHolder().getSurface())
以前是什么,并重新开始实际的预览.
我希望它也适合你:)
总结以上是内存溢出为你收集整理的android – 无法为媒体记录器设置视频质量.视频会产生闪烁的视频全部内容,希望文章能够帮你解决android – 无法为媒体记录器设置视频质量.视频会产生闪烁的视频所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)