Ja sa snažím dostať veci do poriadku pomocou AudioRecord.
V podstate to, čo sa snažím urobiť, je zriedkanahrávať zo zvuku na mojom zariadení s Androidom. Nemusím získavať nepretržitý tok bajtov zo zdroja audiosignálu, ale asi každých 5 minút musím napájať vyrovnávaciu pamäť.
Problém je v tom, že pamäť používa môj programZvyšuje sa vždy, keď nahrávam "" (na vyšetrenie problému s pamäťou som použil DDMS). Aby som lepšie porozumel problému, zmenil som svoj kód na nasledujúce riadky.
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;
Prosím, dajte mi vedieť, či mi môžete pomôcť s mojím problémom. Vďaka.
odpovede:
0 pre odpoveď č. 1Mal som podobný problém a naozaj ma zaujíma, či môžete niečo vykopať. Myslím, že myšlienka kódu je ukázať zväčšenie pamäte pri volaní startRecording()
, potom niečo urobte stop()
... viac ráz.