我正在使用媒体录制器类录制视频,我使用以下属性初始化录制器,
recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
但是视频的质量与我在本机Android相机上拍摄的视频不一样,我使用媒体记录器拍摄的视频与原生视频相比质量较差,如何提高视频质量.
如果有人知道我帮助我.谢谢
解决方法
最后我通过设置videEncodingBitRate,AudioEncodingBitRate,AudioSamplingRate等找到了在android 2.1中录制高质量视频的代码.使用此方法,您可以为视频设置任何想要提供高质量视频的属性.
有关设置高质量和低质量参数的信息,请参阅本页,
我使用基础版android 2.1生成高质量视频的代码如下所示,
recorder = new MediaRecorder(); Method[] methods = recorder.getClass().getMethods(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT); recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); recorder.setVideoFrameRate(24); recorder.setVideoSize(720,480); for (Method method: methods){ try{ if (method.getName().equals("setAudioChannels")){ method.invoke(recorder,String.format("audio-param-number-of-channels=%d",1)); } else if(method.getName().equals("setAudioEncodingBitRate")){ method.invoke(recorder,12200); } else if(method.getName().equals("setVideoEncodingBitRate")){ method.invoke(recorder,3000000); } else if(method.getName().equals("setAudioSamplingRate")){ method.invoke(recorder,8000); } else if(method.getName().equals("setVideoFrameRate")){ method.invoke(recorder,24); } }catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。