2013-02-20 115 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