哪个API可以从ios和osx中的缓冲区播放音频?

Jem*_*Jem 5 audio macos openal core-audio ios

我想这样做很简单:从内存播放PCM音频数据.

音频样本将来自声音合成算法,预加载的样本文件或其他任何内容.我的问题是关于如何播放缓冲区,而不是如何填充数据.

所以我在寻找最好的方式来重新实现我老了,过时AudioWrapper(这是基于AudioUnits V1),但我不能在发现苹果的文档,将履行以下的API:

  • 兼容10.5到10.7.
  • 可在ios中使用.
  • 不依赖于第三方库.
  • 是未来的证据(例如:不基于Carbon,64位......).

我正在考虑使用OpenAL,但它真的是最好的选择吗?我看过它的负面看法,它可能过于复杂和过度,可能会增加性能开销?

更糟糕的是,我可以有两个不同的AudioWrapper实现,但如果可能的话,我真的想避免为每个系统安装一个版本(ios,10.5,10.6,10.7 ......).此外,它将在C++中.

编辑:我需要一个良好的延迟,系统必须在20毫秒内响应用户交互(缓冲区必须介于128到512个样本之间,44KHz)

jus*_*tin 3

AudioQueues很常见。然而,它们的 I/O 缓冲区大小足够大,因此对于交互式 I/O(例如合成器)来说并不理想。

为了降低延迟,请尝试 AudioUnits —— MixerHost 示例可能是一个很好的起点。