2014-02-22 164 views
2

我用Google搜索一下,但沒有發現任何解決方案MediaRecorder:啓動失敗

我記錄呼入和呼出

代碼工作正常呼出但給人的來電例外

recorder = new MediaRecorder(); 

    File sdCard = Environment.getExternalStorageDirectory(); 
    File dir = new File(sdCard.getAbsolutePath() + "/OK"); 
    dir.mkdirs(); 

    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
recorder.setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/OK/"+"yes"+".3gpp"); 
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

    try { 
     recorder.prepare(); 
     recorder.start(); 
    } catch (IllegalStateException e) { 
     Log.d("illegal",e.toString()); 
    } catch (IOException e) { 
     Log.d("io",e.toString()); 
    } 

logcat的

02-23 01:43:08.346 11231-11231/com.example.myapps.acr **I/record﹕ start** 
02-23 01:43:08.426 11231-11231/com.example.myapps.acr **E/MediaRecorder﹕ start failed: -38** 
02-23 01:43:08.426 11231-11231/com.example.myapps.acr **D/illegal﹕ java.lang.IllegalStateException** 

請幫忙爲什麼它不來電的工作..

回答

1
recorder.prepare(); 
Thread.sleep(1000); 
recorder.start(); 

呼入正在採取的時間來準備。

保持1秒的準備,一切工作正常。

+0

沒有爲我工作。 – TheOnlyAnil

+0

你正在測試哪個版本?它不會在lolipop和以上工作 –

+0

是的,棒棒糖。 如何讓它在棒棒糖+設備上運行? – TheOnlyAnil