使用MediaRecorder录制视频的时候,
- mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
- mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
- mMediaRecorder.setVideoFrameRate(20);
- mMediaRecorder.setVideoSize(352, 288);
- mMediaRecorder.setVideoEncoder(mVideoEncoder);
- mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
- mMediaRecorder.setMaxDuration(0);
- mMediaRecorder.setMaxFileSize(0);
- mMediaRecorder.setOutputFile(sender.getFileDescriptor());
- try {
- mMediaRecorder.setOnInfoListener(this);
- mMediaRecorder.setOnErrorListener(this);
- mMediaRecorder.prepare();
- mMediaRecorder.start();
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setVideoFrameRate(20);
mMediaRecorder.setVideoSize(352, 288);
mMediaRecorder.setVideoEncoder(mVideoEncoder);
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mMediaRecorder.setMaxDuration(0);
mMediaRecorder.setMaxFileSize(0);
mMediaRecorder.setOutputFile(sender.getFileDescriptor());
try {
mMediaRecorder.setOnInfoListener(this);
mMediaRecorder.setOnErrorListener(this);
mMediaRecorder.prepare();
mMediaRecorder.start();
出现如题错误:注意,这段代码在小米上面可以跑通,在Htc和联想的某些机型上面会出现如题错误。
修改为以下,注释掉三行代码:
- mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
- mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
- // mMediaRecorder.setVideoFrameRate(20);
- // mMediaRecorder.setVideoSize(352, 288);
- mMediaRecorder.setVideoEncoder(mVideoEncoder);
- mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
- mMediaRecorder.setMaxDuration(0);
- // mMediaRecorder.setMaxFileSize(0);
- mMediaRecorder.setOutputFile(sender.getFileDescriptor());
- try {
- mMediaRecorder.setOnInfoListener(this);
- mMediaRecorder.setOnErrorListener(this);
- mMediaRecorder.prepare();
- mMediaRecorder.start();
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
// mMediaRecorder.setVideoFrameRate(20);
// mMediaRecorder.setVideoSize(352, 288);
mMediaRecorder.setVideoEncoder(mVideoEncoder);
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
mMediaRecorder.setMaxDuration(0);
// mMediaRecorder.setMaxFileSize(0);
mMediaRecorder.setOutputFile(sender.getFileDescriptor());
try {
mMediaRecorder.setOnInfoListener(this);
mMediaRecorder.setOnErrorListener(this);
mMediaRecorder.prepare();
mMediaRecorder.start();
即可。
在StackOverFlow上面,也有很多这样的问题,如果这种方案不能解决,建议在上面找找其他。
如果使用setCamera()方法,前面要调用camera.unLock()方法。否则,可能出错。
转载:http://blog.csdn.net/lilu_leo/article/details/9097471