我使用的是AudioRecord类,构造函数是:
AudioRecord(
int audioSource, int sampleRateInHz,
int channelConfig, int audioFormat, int bufferSizeInBytes)在我在互联网上找到的所有(或大部分)教程和示例中,建议设置bufferSizeInBytes,如下所示:
bufferSizeInBytes= getMinBufferSize (
int sampleRateInHz, int channelConfig, int audioFormat) 有人能告诉我原因吗?
我需要在我正在记录的值和一个模式之间进行关联。此模式比MinBufferSize长。所以,我应该将bufferSizeInBytes增加到我喜欢的值,还是这样会使AudioRecord的性能恶化。
发布于 2013-09-16 13:12:35
有人能告诉我原因吗?
因为给定配置的getMinBufferSize返回的是最小的缓冲区大小,所以在创建AudioRecord时可以指定。
为什么你想要最小的缓冲区大小?以获得尽可能低的延迟。
假设您正在做一些类似SPL计量器的事情;您不希望在UI对声压的变化作出反应之前有一秒的延迟。
不过,缓冲区大小并不决定您可以从read()请求多少数据。请求比AudioRecord's缓冲区大小更多的数据是可以的;read()只是在读取了所请求的所有数据之后才返回。
https://stackoverflow.com/questions/18815518
复制相似问题