Android的mediarecorder停止失败 [英] Android mediarecorder stop failed
本文介绍了Android的mediarecorder停止失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我面临一个很奇怪的现象:有时我mediarecorder崩溃,并显示错误停止失败,有时它工作正常。有没有我的错,或者是系统的一个bug?
我cant't得到什么是错的。
私人无效STO precording(){
ticker.cancel();
ticker.purge(); recorder.stop(); startBtn.setText(开始);
recordInProcess = FALSE; markList = locWriteTask.getMarkArray(); mCamera.lock();
recorder.release();
} 私人无效的startRecording(){ startBtn.setText(停止); recordInProcess =真; 记录=新MediaRecorder(); mCamera.unlock();
recorder.setCamera(mCamera); recorder.set previewDisplay(mSurfaceHolder.getSurface());
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEn codeR(MediaRecorder.AudioEn coder.AMR_NB);
recorder.setVideoEn codeR(MediaRecorder.VideoEn coder.MPEG_4_SP);
recorder.setMaxDuration((INT)10000000);
recorder.setVideoSize(320,240);
recorder.setVideoFrameRate(15);
recorder.setOutputFile(FULL_PATH_TO_LOCAL_FILE +专柜+ MP4); 尝试{
。录音机prepare();
}赶上(例外五){
完();
} lm.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,LL); 新浪体育讯北京时间=新的Timer();
locWriteTask =新WriteTimeLocationTimerTask(LL);
ticker.schedule(locWriteTask,0,DELAY); recorder.start();
}
解决方案
如果记录不处于记录状态,则停止可能会失败。
请参阅
http://developer.android.com/reference/android/media/MediaRecorder.html
I've faced a very strange behavior: sometimes my mediarecorder crashes with an error "Stop failed" and sometimes it works fine. Is there my fault or it is a bug of the system? I cant't get what is wrong.
private void stopRecording(){
ticker.cancel();
ticker.purge();
recorder.stop();
startBtn.setText("Start");
recordInProcess = false;
markList = locWriteTask.getMarkArray();
mCamera.lock();
recorder.release();
}
private void startRecording(){
startBtn.setText("Stop");
recordInProcess = true;
recorder = new MediaRecorder();
mCamera.unlock();
recorder.setCamera(mCamera);
recorder.setPreviewDisplay(mSurfaceHolder.getSurface());
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
recorder.setMaxDuration((int) 10000000);
recorder.setVideoSize(320, 240);
recorder.setVideoFrameRate(15);
recorder.setOutputFile(FULL_PATH_TO_LOCAL_FILE + counter + MP4);
try{
recorder.prepare();
} catch (Exception e){
finish();
}
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
ticker = new Timer();
locWriteTask = new WriteTimeLocationTimerTask(ll);
ticker.schedule(locWriteTask, 0, DELAY);
recorder.start();
}
解决方案
If the recorder is not in a recording state, then the stop could fail.
See http://developer.android.com/reference/android/media/MediaRecorder.html
这篇关于Android的mediarecorder停止失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文