2009-10-20 106 views
3

我正在爲iPhone做一個opengl遊戲。我即將開始爲應用程序添加聲音效果。我想知道這個目的的最佳框架是什麼。iPhone遊戲中的聲音效果

AV基礎是我最好的選擇嗎?我錯過了其他任何人,比如說打開AL吧? iPhone聲音API的從遊戲的角度

+0

在下面的註釋中,您可能需要添加openal和core-audio標籤。謝謝。 – invalidname 2009-10-20 19:20:18

回答

18

一般強度/弱點摘要:

  • AVFoundation:播放很長的壓縮文件。沒有低級訪問,高延遲。適合主題曲或背景音樂。短期效應不好。
  • 系統聲音:播放短片(想象0-5秒)的聲音。必須是.aif,.wav或.caf中的PCM或IMA4。消防忘記(啓動後無法停止)。基於C的API。適用於短暫的聲音效果(水龍頭,喀嚓聲,撞擊聲,撞擊聲)
  • OpenAL:3D空間化音頻。 API類似於OpenGL,是它的自然伴奏。易於混合多個來源。音頻需要PCM(可能由Core Audio的「音頻文件服務」加載)。相當重要的低級訪問。潛在的非常低的延遲。
  • 音頻隊列:從您提供的源(從文件讀取,從網絡,軟件綜合等)播放流。基於C語言。可以是相當低的延遲。對於很多遊戲任務來說並不是很理想:背景音樂更適合AVFoundation,對系統聲音更短的聲音以及混合到OpenAL或Audio Unit。可以從麥克風錄音。
  • 音頻單位:Core Audio的最低公共級別。極低的延遲(< 30毫秒)。 C和硬核C在那。一切都必須是PCM。多聲道混音器單元可讓您混合音源。可以記錄。

要確保你正確設置你的音頻會話,這意味着你申報的類別,指示你如何與音頻的其餘設備上進行交互(允許/在後臺禁止iPod播放,榮譽/忽略環/無聲開關等)。 AV基金會有這個Obj-C版本,而且Core Audio的功能更強大一些。

+0

我嘗試過使用系統聲音,但它減慢了我的項目數量。之後我嘗試了AVFoundation,雖然稍微好一點,但仍然放慢了一切。我試圖創建一個快速重複的點擊聲音(如點擊輪)。我應該使用哪個? – jowie 2010-08-23 16:37:11

0

您可能想要查看Finch,這是一款完全符合遊戲的OpenAL音效引擎編寫器。

1

Kowalski是在iPhone/iPad(以及OSX和Windows)上運行的另一種面向遊戲的聲音引擎。