MediaRecorder start failed -19 java.lang.RuntimeException: start failed

来源:互联网 发布:淘宝网充值中心在哪 编辑:程序博客网 时间:2024/04/30 03:39

          使用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(); 

出现如题错误:注意,这段代码在小米上面可以跑通,在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();  

即可。


在StackOverFlow上面,也有很多这样的问题,如果这种方案不能解决,建议在上面找找其他。


  如果使用setCamera()方法,前面要调用camera.unLock()方法。否则,可能出错。