【发布时间】:2016-01-25 21:09:10
【问题描述】:
从手机的 MIC 录制时,我对使用 getMinBufferSize() 和 AudioRecord.read() 有点困惑。 我知道 getMinBufferSize() 为您提供了创建音频记录对象所需的最小字节数(在 1 秒内?)。
bufferSize= AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,
RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING);
然后,当他们调用 AudioRecord.read() 时,他们将读取“bufferSize”的字节大小作为参数。
read = recorder.read(data, 0, bufferSize);
这是我的问题:
1- 为什么 bufferSize 返回 8192?我猜它正在制作 8*1024,但我想知道它的确切计算是什么(我使用的是 8000 Hz 采样率、通道 MONO 和 16 位 PCM)
2- 我认为 bufferSize 是我可以在 1 秒的持续时间内存储的数据量,但是,如果我想读取超过 1 秒怎么办?我应该将此值乘以秒数吗?
【问题讨论】:
标签: android buffer audio-recording