我有一个关于CoreAudio和AVFoundation的问题。CoreAudio和AVFoundation之间的性能
我使用带有AUGraph和AudioUnit的CoreAudio构建了专业音频应用程序。
我想切换到AVFoundation框架,这似乎是非常棒的。但由于我担心表演,我想多了解一点。
在我的核心音频渲染回调中,我可以用44100kHz的采样率处理512个采样,所以我的回调每10ms调用一次,我认为它可以很容易地加快(对吗?)。
现在在AVFoundation中,呈现回调是AVAudioNode的Tap。并且我在评论中看到,bufferSize参数是the requested size of the incoming buffers in sample frames. Supported range is [100, 400] ms.
那么这是否意味着我将无法在每次调用中处理少于4410个样本?
限制是否来自Objective-C约束(消息调用,锁等)?
它不会对实时DSP过程产生影响吗?
非常感谢你@ hotpaw2!我总是很感谢你在这里的质量答案。 这就是我正在寻找的,它似乎是一个很好的解决方案。我没有介绍AUAudioUnit的子类。顺便说一句,我们无法从AVAudioPlayer获得音频单元,所以我们非常伤心...所以,如果我理解的很好,以较高的速率获取/更改AVAudioPlayerNode示例的正确方法是:AVAudioPlayerNode - > MyCustomAU(with呈现回调) - > OtherAVAudioUnit。事实上,似乎只用macOS 10.13或更高版本就可以从中获得AudioUnit ... – DEADBEEF
我以前的评论的来源[Apple文档](https://developer.apple.com/documentation/avfoundation/avaudionode/2866396-auaudiounit) – DEADBEEF
AUAudioUnit子类似乎适用于在运行于macOS 10.12下的iOS Simulator内运行的代码。猜猜这可能意味着什么... – hotpaw2