如何修改音频单位缓冲区的大小



我正在开发一个录音应用程序,但我要求输入缓冲区的大小应为 882 字节。我知道我可以像这张图片一样修改buffList的mDataByteSize。 但它只能修改为 2 的幂。当我尝试将其修改为882时,它警告我"AudioUnitRender错误:-50"。

我希望有人能帮助我,因为我没有办法。

您不能在音频单元录制回调缓冲区列表中要求特定的输入大小。实际上,允许音频单元 API 在运行时更改每个音频缓冲区的样本数。 因此,你的应用必须支持与请求的不同数量的帧,每个回调。

相反,你的应用应将示例保存在另一个临时 FIFO 缓冲区中,稍后在该临时 FIFO 缓冲区足够满时删除所需块大小中的一些示例。 通常,循环缓冲区用于存储临时量,直到它填充到您需要的大小或更大。 他们可以准确地提取出 882 个或您需要的任何数量的样本。

最新更新