Android:在AudioRecord中推荐bufferSizeInBytes值
作者:互联网
我正在使用AudioRecord类,其构造函数是:
AudioRecord(
int audioSource, int sampleRateInHz,
int channelConfig, int audioFormat, int bufferSizeInBytes)
在我在互联网上找到的所有(或大多数)教程和示例中,建议设置bufferSizeInBytes,如下所示:
bufferSizeInBytes= getMinBufferSize (
int sampleRateInHz, int channelConfig, int audioFormat)
谁能告诉我原因?
我需要在记录的值和模式之间建立相关性.此模式比MinBufferSize长.那么,我应该将bufferSizeInBytes增加到我喜欢的值,还是会使AudioRecord的性能恶化.
解决方法:
Could anyone tell me the reason?
因为getMinBufferSize为给定配置返回的是您在创建AudioRecord时允许指定的最小缓冲区大小.
为什么你想要尽可能小的缓冲区大小?获得尽可能低的延迟.
想象一下,你正在做一个类似SPL仪表的事情;在你的UI对声压的变化作出反应之前,你不希望有一秒钟的延迟.
但是,缓冲区大小并不能确定您可以从read()请求多少数据.可以请求比AudioRecord缓冲区大小更多的数据; read()只有在您读取了所有请求的数据之后才会返回.
标签:android,audiorecord 来源: https://codeday.me/bug/20190517/1121480.html