2012-02-26 3 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

ответ

0

У меня была аналогичная проблема, и мне очень интересно, если вы можете что-то вырыть. Я предполагаю, что идея кода - показать увеличение памяти при вызове startRecording(), затем сделать что-то, затем stop() ... несколько раз.

Смежные вопросы