2009-10-20 107 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)上运行的另一种面向游戏的声音引擎。