Аз се боря, за да правя нещата правилно, използвайки 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 за отговор № 1Имах подобен проблем и наистина се интересувам, ако можете да копаете нещо. Предполагам, че идеята за кода е да покаже увеличението на паметта, когато се обаждате startRecording()
, тогава правете нещо stop()
... много пъти.