ALSA 缓冲区大小是否有硬件定义的上限?

Does ALSA buffer size have a hardware-defined upper limit?

我有一个 Raspberry Pi 连接了一个 i2s MEMS 麦克风。我正在使用 SOX 库从中录制音频,并尝试增加我的 ALSA buffer_size.

我的 ALSA buffer_size 目前是 65536,但我想增加它。缓冲区大小是否有理论上的限制?它能有多大?

谢谢!

理论限制为 2^32 帧。但实际限制是您的硬件实际支持的任何内容。

要读取当前最大缓冲区大小,请调用snd_pcm_hw_params_get_buffer_size_max()("current"因为它可能受到其他硬件参数的限制,例如采样率或通道数)。