其他分享
首页 > 其他分享> > Android:在AudioRecord中推荐bufferSizeInBytes值

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