1. 程式人生 > >MediaRecorder錄音,解決stop,start錯誤

MediaRecorder錄音,解決stop,start錯誤

public class Recorder {

    private static final int MAX_LENGTH=1000*60*3;//3分鐘
private MediaRecorder recorderl;
    public Recorder()
    {
        initial();
}

    private void initial() {
        recorderl=new MediaRecorder();
String path= Environment.getExternalStorageDirectory().getAbsolutePath()+"/test.amr"
; recorderl.setAudioSource(MediaRecorder.AudioSource.MIC); recorderl.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); recorderl.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorderl.setMaxDuration(MAX_LENGTH); recorderl.setOutputFile(path); } public void startRecorder() { initial();
try { recorderl.prepare(); } catch (IOException e) { e.printStackTrace(); } recorderl.start(); } public void stopRecorder() { if(recorderl!=null) { recorderl.stop(); recorderl.release(); } recorderl=null; } public void
startRecorderVoice() { handler.postDelayed(run,200); } public void stopRecorderVoice() { handler.removeCallbacks(run); } private Handler handler=new Handler(); private Runnable run=new Runnable() { @Override public void run() { Log.i("view","test"+recorderl.getMaxAmplitude()); handler.postDelayed(run,200); } };

}

每次start前記得initial,不然連續點選會出現stop,start這些錯誤

這是因為stop或者release後,MediaRecorder被回收了,不能重新start