Jem*_*Jem 5 audio macos openal core-audio ios
我想这样做很简单:从内存播放PCM音频数据.
音频样本将来自声音合成算法,预加载的样本文件或其他任何内容.我的问题是关于如何播放缓冲区,而不是如何填充数据.
所以我在寻找最好的方式来重新实现我老了,过时AudioWrapper(这是基于AudioUnits V1),但我不能在发现苹果的文档,将履行以下的API:
我正在考虑使用OpenAL,但它真的是最好的选择吗?我看过它的负面看法,它可能过于复杂和过度,可能会增加性能开销?
更糟糕的是,我可以有两个不同的AudioWrapper实现,但如果可能的话,我真的想避免为每个系统安装一个版本(ios,10.5,10.6,10.7 ......).此外,它将在C++中.
编辑:我需要一个良好的延迟,系统必须在20毫秒内响应用户交互(缓冲区必须介于128到512个样本之间,44KHz)
AudioQueues很常见。然而,它们的 I/O 缓冲区大小足够大,因此对于交互式 I/O(例如合成器)来说并不理想。
为了降低延迟,请尝试 AudioUnits —— MixerHost 示例可能是一个很好的起点。