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);上面的代码运行良好,但是视频质量与我在本地android摄像头上拍摄的视频不一样,我使用媒体录制器录制的视频与本地的相比质量较差,如何提高视频质量。如果有人知道,帮我一把。谢谢 最佳答案 我不是Java/Android DeV,我使用Xamarin和C.Y.,但是我有很多相同的问题,而且我的解决方案应该是直接适用的(即使语法几乎相同)。我发现,如果您正在使用setCamera(并在启动MediaRecorder之前预览相机看到的内容),则它不会允许您更改mediaRecorder上的质量设置。然后当您调用mediaRecorder.start()时,它要么崩溃,要么冻结,要么显示垃圾。基本上,只要相机正在预览,MediaRecorder就不允许以与相机已有质量不同的质量开始录制。你需要停止相机预览,去掉它的预览面将摄像机分配给媒体录制器(使用setCamera)按所需质量设置媒体录制器然后重新附着预览曲面当你开始录音的时候,一切都正常。因此,在您的情况下,在调用mediaRecorder.setCamera()之前,请尝试以下操作:再往下,做你的这就是我的解决办法。我现在可以将视频质量设置为720p(或1080p),它工作得很好。但是,当您停止录制时,您的预览也将停止。你可能需要恢复重新启动实际预览。我希望它也对你有用:)
08-18 01:17