2010-06-29 76 views

回答

1

OpenAL是一個先進的音頻播放引擎。與AVAudio播放器相比,您必須獲得更多的「骯髒」。

OpenAL常用於遊戲。 OpenAL提供了3D聲音定位,這就是距離相關參數等事情的起點。它是基於C的API,而AVAudio是Objective C.如果您不知道中等到高級的C編程,那麼您將與OpenAL編程鬥爭。

AVAudioPlayer是最好的,如果你只是需要基本的播放和錄製。如果你需要比OpenAL更多的控制,或者音頻隊列是要走的路(儘管音頻隊列也是基於C的API)。許多人似乎更喜歡OpenAL,而不是音頻隊列,因爲它是一個跨平臺庫,其功能類似於遊戲程序員已經非常熟悉的OpenGL。

在遊戲或高級音頻同步情況之外的大多數情況下,AVAudio都是最佳選擇。即使在遊戲中,我經常看到人們使用OpenAL(用於音效)和AVAudio(用於音樂回放)的組合。

+0

啊好的,這是有用的知道。謝謝! – mindthief 2011-02-22 20:59:32

0

如果您想更改音頻參數(如距離相關,基於模式的播放),則OpenAL提供更多控制。 AVAudioPlayer是一個非常基本的AVAudioPlayer,但是您可以使用低級別的API實現與AudioQueues和AudioUnit相似的功能。簡而言之,OpenAL可以通過手指點擊來做幾件事情,但是它又需要你在看什麼?希望這可以幫助。

+0

謝謝!你能否澄清「距離相關,基於模式的回放」的含義?另外,您是否建議您使用AVAudioPlayer來實現OpenAL功能的「AudioQueues」和「AudioUnit」?或者相反 - 使用OpenAL來實現AVAudioPlayer功能?澄清將不勝感激! – mindthief 2010-12-26 01:04:20