在一定时间内更改缓冲区大小

Changing buffer size for certain amount of seconds

本文关键字:缓冲区 定时间      更新时间:2023-10-16

我的问题是,给定一个int16_t buffer[128]的缓冲区;用于采样和回放48kHz=Fs的音频信号,我该如何更改缓冲区大小,使缓冲区仅存储0.25s的数据。

以下是我的想法,但鉴于我的硬件经验,我无法证明这一点:

  • 如果我以48kHz采样,我每秒有48000个样本。因此,为了只获得1/4秒(12000个样本?),我的缓冲区大小将是int16_t缓冲区[32]

我对硬件不太了解,所以任何指导/指导或帮助都将不胜感激。提前感谢!

floor(25*48000/100)
ans =
       12000

那么你需要int16_t buffer[12000]来获得0.25秒的音频吗。

如果您正在实时执行某项操作,那么这种大小的缓冲区可能会导致不希望的延迟。