我的问题涉及 AudioUnits。为了设计一个用于 iPhone 的变声应用程序(使用 Objective-C xCode),我使用了这个网站上的 RemoteIO audioUnit 示例:
http://atastypixel.com/blog/using-remoteio-audio-unit/
audioUnit 缓冲区设置为 256 个样本的长度。对于我的项目,我需要更多(大约 22050)。引用的页面说audioUnit缓冲区的长度可以这样调整:
float aBufferLength = 0.005; // In seconds
AudioSessionSetProperty(kAudioSessionProperty_PreferredHardwareIOBufferDuration,
sizeof(aBufferLength), &aBufferLength);
现在我的具体问题:上面的代码不适合提到的audioUnit,因为没有使用AudioSession,从未初始化,因此会产生错误。除了“kAudioSessionProperty_PreferredHardwareIOBufferDuration”之外,还有其他调整缓冲区持续时间的可能性吗?在这种情况下,文档不是很有用......在此先感谢 Lukas。