1

iPhone 上的 OpenAL 和 AVAudioPlayer 有什么区别?似乎两者都可以用于播放/录制音频。你什么时候用?各自提供哪些优势/功能?

谢谢!-公吨

4

2 回答 2

1

OpenAL 是一种高级音频播放引擎。与使用 AVAudio 播放器相比,您必须使用它获得更多的“肮脏”。

OpenAL 经常用于游戏中。OpenAL 提供 3D 声音定位,这是距离相关参数之类的东西发挥作用的地方。它是一个基于 C 的 API,而 AVAudio 是 Objective C。如果您不了解中高级 C 编程,那么您将难以使用 OpenAL 编程。

如果您只需要基本的播放和录音,AVAudioPlayer 是最好的。如果您需要比 OpenAL 或音频队列更多的控制权,那么您可以选择(尽管音频队列也是基于 C 的 API)。许多人似乎更喜欢 OpenAL 而不是音频队列,因为它是一个跨平台库,并且与游戏程序员已经非常熟悉的 OpenGL 类似。

在游戏或高级音频同步情况之外的大多数情况下,AVAudio 是可行的方法并且效果很好。即使在游戏中,我也经常看到人们结合使用 OpenAL(用于音效)和 AVAudio(用于音乐播放)。

于 2011-02-20T12:07:22.393 回答
0

如果您想更改与距离相关、基于模式的播放等音频参数,OpenAL 提供了更多控制。AVAudioPlayer 是一个非常基本的,但您可以使用低级 api 与 AudioQueues 和 AudioUnit 实现类似的效果。简而言之,OpenAL 用手指做的事情很少,但它又需要你在看什么?希望这可以帮助。

于 2010-12-20T21:56:39.427 回答