【问题标题】:How to modify the size of AudioUnit Buffer?如何修改 AudioUnit Buffer 的大小?
【发布时间】:2019-08-27 10:01:09
【问题描述】:

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

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

【问题讨论】:

    标签: ios objective-c audiounit


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我现在知道该怎么做了。
    猜你喜欢
    • 2011-06-19
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 2012-03-08
    • 2010-11-19
    • 1970-01-01
    相关资源
    最近更新 更多