Проблема с поведением AudioRecord - PullRequest
0 голосов
/ 27 февраля 2012

Я изо всех сил пытаюсь сделать все правильно, используя 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;

Пожалуйста, дайте мне знать, если вы можете помочь мне с моей проблемой. Спасибо.

1 Ответ

0 голосов
/ 13 марта 2012

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

...