2013-02-20 95 views
1

我試着用MediaRecorder錄製音頻:MediaRecorder不錄製音頻

MediaRecorder recorder= new MediaRecorder(); 
recorder.reset(); 
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 
recorder.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
recorder.setOutputFile(path); 
recorder.setMaxDuration(30*60*1000); 
recorder.prepare(); 
recorder.start(); 

代碼工作正常,沒有異常發生在運行時,對SD卡的文件不是創造了一些時候,如果文件將創建那麼文件大小爲0KB。

我也註冊的錯誤和信息聽衆OnInfoListenerOnErrorListenerOnInfoListener public void onInfo(MediaRecorder mr, int what, int extra)回報麼= 802和額外= 6 我試圖真實設備,但是不能工作的代碼。

+0

嘗試刪除重置行。 – JoxTraex 2013-02-20 04:40:10

+0

我嘗試刪除重置行,但問題保持不變。 – Parveen 2013-02-20 05:02:14

+0

你最終發現了什麼是造成這個問題? – 2016-05-20 05:29:28

回答

0

試試這個它的工作對我來說:

MediaRecorder recorder = new MediaRecorder(); 
recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT); 
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
recorder.setOutputFile(path); 
recorder.prepare(); 
recorder.start(); 
+0

我也試過這段代碼,但問題對我來說依然存在。 – Parveen 2013-02-20 05:03:47

0

你可以試試這個:

   mRecorder = new MediaRecorder(); 
       mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
       mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); 
       mRecorder.setOutputFile(mFileName); 
       mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 

       try { 
        mRecorder.prepare(); 
       } catch (IOException e) { 
        Log.e("start", "prepare() failed"); 
       } 

       mRecorder.start(); 

,如果你得到任何錯誤,那麼請貼logcat的。

+0

代碼工作正常,在運行時不會發生異常。 – Parveen 2013-02-20 05:03:12

+0

第一步你可以在SD卡中找到你的文件? – Harshid 2013-02-20 05:19:46

+0

如果我試圖記錄音頻10次,然後在10次嘗試中創建兩次文件在SD卡中創建但不是在SD卡中創建時間文件。 – Parveen 2013-02-20 05:24:42