我正在努力使用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;如果你能帮我解决我的问题,请让我知道。谢谢。
发布于 2012-03-13 17:28:46
我也有类似的问题,如果你能挖掘出一些东西,我真的很感兴趣。我猜代码的想法是在调用startRecording()时显示内存的增加,然后执行一些操作,然后执行stop()...很多次。
https://stackoverflow.com/questions/9458209
复制相似问题