【发布时间】:2019-08-27 10:01:09
【问题描述】:
我正在开发一个记录应用程序,但我要求输入缓冲区的大小应为 882 字节。我知道我可以像this picture 一样修改buffList 的mDataByteSize。 但它只能修改为 2 的幂。当我尝试将其修改为 882 时,它警告我“AudioUnitRender 错误:-50”。
我希望有人可以帮助我,因为我没有办法。
【问题讨论】:
标签: ios objective-c audiounit
我正在开发一个记录应用程序,但我要求输入缓冲区的大小应为 882 字节。我知道我可以像this picture 一样修改buffList 的mDataByteSize。 但它只能修改为 2 的幂。当我尝试将其修改为 882 时,它警告我“AudioUnitRender 错误:-50”。
我希望有人可以帮助我,因为我没有办法。
【问题讨论】:
标签: ios objective-c audiounit
您不能在音频单元录制回调缓冲区列表中要求特定的输入大小。事实上,Audio Unit API 允许在运行时更改每个音频缓冲区的样本数。因此,您的应用必须支持与请求不同的帧数,每次回调。
相反,您的应用应将样本保存在另一个临时 FIFO 缓冲区中,然后在该临时 FIFO 缓冲区足够满时删除您所需块大小的一些样本。通常,循环缓冲区用于存储临时量,直到它被填充到您需要的大小或更大。您可以准确提取 882 个或您需要的任何数量的样本。
【讨论】: