iPhone游戏中的声音效果

3
我正在为iPhone制作一个OpenGL游戏。我即将开始给应用程序添加音效。我想知道最好的框架是什么。
AV Foundation是最好的选择吗?还有其他的选择吗,比如OpenAL?

根据下面的评论,您可能需要添加openal和core-audio标签。谢谢。 - invalidname
3个回答

19

从游戏角度来看,iPhone音频API的总体优劣概述:

  • AVFoundation:播放长时间压缩文件,没有低级别访问,延迟高。适合主题曲或背景音乐,不适合短暂效果。
  • 系统声音:播放短(0-5秒)声音。必须是.aif、.wav或.caf格式的PCM或IMA4格式。一旦开始就不能停止。基于C API。适合短声效(轻敲、点击、撞击等)。
  • OpenAL:3D空间化音频。API类似于OpenGL且与之自然补充。容易混合多个来源。音频需要为PCM格式(可能由核心音频的“音频文件服务”加载)。具有相当重要的低级别访问权限。潜在的延迟非常低。
  • Audio Queue:从您提供的源流式播放(从文件读取、从网络读取、软件合成等)。基于C语言。延迟可能相当低。不太适合大量游戏任务:背景音乐更适合AVFoundation,较短的声音更适合系统声音,混音更适合OpenAL或音频单元。可以从麦克风录制。
  • 音频单元:Core Audio的最低公共级别。延迟极低(<30毫秒)。基于C语言,而且是硬核C语言。所有内容都必须为PCM格式。多通道混音器单元可让您混合来源。可以录制。

确保适当设置音频会话,即声明指示您如何与设备上的其他音频交互的类别(允许/禁止在后台播放iPod,遵守/忽略铃声/静音开关等)。AV Foundation具有此选项的Objective-C版本,而Core Audio具有更强大的等效功能。


我尝试使用系统声音,但它使我的项目减速了很多。之后我尝试了AVFoundation,稍微好了一些,但仍然会拖慢一切。我正在尝试创建快速重复的点击声音(如点击轮)。我应该使用哪个? - jowie

1

Kowalski 是另一个面向游戏的音频引擎,可在 iPhone/iPad(以及 OSX 和 Windows)上运行。


0
你可能想要查看Finch,这是一个专门为游戏设计的OpenAL音效引擎。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接