Android-mediarecorder stoppen gescheitert
Habe ich vor ein sehr seltsames Verhalten: manchmal ist mein mediarecorder stürzt mit einer Fehlermeldung "Stop failed" und manchmal funktioniert es einwandfrei. Ist es meine Schuld oder ist es ein bug im system?
Ich kann nicht bekommen, was falsch ist.
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();
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der Rekorder nicht in ein Aufnahme-Zustand, dann stop scheitern könnte.
Sehen
http://developer.android.com/reference/android/media/MediaRecorder.html
Können Sie fangen eine RuntimeException auf den MediaRecorder.stop () - Methode.
Beispiel:
fügen Sie Folgendes in Ihre SurfaceCreated(SurfaceHolder holder):
Erlebt den gleichen Fehler: Manchmal mein MediaRecorder abgestürzt mit einer Fehlermeldung "Stop failed" und manchmal funktionierte es gut. Hinzufügen, dass diese mein problem gelöst: