转载自:http://blog.sina.com.cn/s/blog_705e786801014bsv.html
使用MediaRecord做视频录制需要注意
MediaRecord参数设置顺序必须对,不然会抛出java.lang.IllegalStateException,推荐顺序:
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置音源
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//设置视频源
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置输出格式
//CamcorderProfile camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
//mediaRecorder.setProfile(camcorderProfile);//构造CamcorderProfile,使用高质量视频录制
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);//设置音频编码
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);//设置视频编码
mediaRecorder.setOutputFile(videoFile.getAbsolutePath());//设置输出路径
mediaRecorder.setVideoSize(960, 544);//设置视频分辨率,这里很重要,设置错start()报未知错误
//推荐用手机内置录像机先录制一段视频,用内置播放器查看视频信息,看看手机分辨率支援情况
mediaRecorder.setVideoFrameRate(4);//设置视频帧率
mediaRecorder.prepare();//准备录制
mediaRecorder.start();//开始录制
以上如果使用CamcorderProfile做配置的话,就应该注释设置输出格式,音频编码,视频编码3条语句