Android的mediarecorder停止失败 [英] Android mediarecorder stop failed

查看:446
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆