1

我正在使用实时音频渲染,Audio Unit RemoteIO我需要进行采样率转换,以确保我的渲染与硬件规格的采样率相同。例如。iPhone 12 的采样率为 48khz,但 iPhone 8 的采样率为 44.1khz。

要进行此采样率转换,我正在使用AudioConverterFillComplexBuffer方法。但是有一个问题。为了确保我没有得到任何欠载,我想检查AudioConverterFillComplexBuffer方法源代码以查看内存分配是否是使用new关键字进行的。这是一个要求,因为 mem alloc 是阻塞的,它不应该在远程 io 回调中使用。

有没有办法AudioConverterFillComplexBuffer从源代码访问函数AudioToolBox?在 xcode 中,我只能看到标题。

4

1 回答 1

3

该实现是 Apple 私有的,但两者AudioConverterFillComplexBuffer和 C++ 端AudioConverter都由 IOProcs 直接使用,因此从实时上下文调用该函数应该没有问题。

这是来自渲染块的屏幕截图AVAudioSourceNode调用栈

于 2021-07-21T22:11:52.293 回答