我编写了一个 V3 AudioUnit 并使用 AVAudioUnit
托管它。我的渲染回调以 512 帧调用,这对我的应用程序(合成器)来说延迟太高。
AVAudioEngine
有办法设置处理缓冲区大小吗?或者我需要直接使用 CoreAudio 吗?
注意:这是在 OS X 10.11 上。
最佳答案
下面的技巧:
static OSStatus SetCurrentIOBufferFrameSize(AudioUnit inAUHAL,
UInt32 inIOBufferFrameSize)
{
return AudioUnitSetProperty(inAUHAL,
kAudioDevicePropertyBufferFrameSize,
kAudioUnitScope_Global,
0,
&inIOBufferFrameSize, sizeof(UInt32));
}
...
_audioEngine = [[AVAudioEngine alloc] init];
SetCurrentIOBufferFrameSize(_audioEngine.inputNode.audioUnit, 32);
关于macos - AVAudioEngine:有什么方法可以控制缓冲区大小(延迟)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33030913/