2012-02-26 37 views
0

我很努力地使用AudioRecord来正确使用它。AudioRecord行为的问题

基本上我想要做的是很少从我的Android设备上的音频记录。 我不必从音频源获得连续的字节流,但我必须每隔5分钟左右馈送一个缓冲区。

问题是我的程序使用的内存每次在录制时都会增加(我使用DDMS来调查我的内存问题)。为了更好地理解问题,我将代码简化为以下几行。

buffersizebytes = AudioRecord.getMinBufferSize(SAMPPERSEC, 
      channelConfiguration, audioEncoding); 
    tabbAudioBuffer = new byte[buffersizebytes]; 

    setContentView(R.layout.main); 

    audioRecord = new AudioRecord(
      android.media.MediaRecorder.AudioSource.MIC, SAMPPERSEC, 
      channelConfiguration, audioEncoding, buffersizebytes); 

    int i=1000; 
    while(i-->0) { 
     audioRecord.startRecording(); 
     audioRecord.stop(); 
    } 

    audioRecord.release(); 
    audioRecord = null; 

请让我知道你是否可以帮我解决我的问题。 谢谢。

+0

为什么你开始和停止audioRecord对象1000次,为什么? – aProgrammer 2012-03-01 12:46:39

回答

0

我有一个类似的问题,我真的很感兴趣,如果你能挖出一些东西。 我想代码的想法是,当你拨打startRecording()时,显示内存的增加,然后做一些事情,然后stop() ...多次。