【发布时间】:2015-01-15 01:46:06
【问题描述】:
我是 Objective-C 的新手,对处理基本音频的正确方法感到非常困惑。我完成了一个简单的游戏,但几天来一直在与声音问题作斗争。
这是我的理解:
AVAudioPlayer:似乎非常适合播放较长的声音,例如覆盖游戏的主题音乐。
AudioServicesPlaySystemSound:似乎非常适合快速音效,不到 30 秒。
我自然会继续认为我会使用 AVAudioPlayer 来制作主题音乐,而 SystemSound 来制作我的音效。不幸的是,我立即注意到一个非常烦人的问题 - 两者由不同的音量源控制(SystemSoundServices 使用铃声音量??)并且通常不能很好地配合使用。这不是大多数应用程序使用的设置。
然后我放弃了 AudioServicesPlaySystemSound 方法并重新编程了 AVAudioPlayer 中的所有内容。这对音量效果很好,但会导致严重的延迟并且无法处理快速的声音序列。这似乎对音效没有用处。
我现在正在研究 OpenAL,这对于我的简单游戏来说似乎是严重的矫枉过正。那么有人可以告诉我 - 我是否遗漏了什么或者 OpenAL 是处理这种常见音乐/sfx 游戏格式的最佳方式?
【问题讨论】:
-
"重新编程了 AVAudioPlayer 中的所有内容。这对音量效果很好,但会导致严重的延迟并且无法处理快速的声音序列" 那么你做错了。展示你是如何做到的。
-
对了,新的AVAudioEngine呢???正如 WWDC 2014 视频中有关它的讨论所示,它非常适合游戏。
标签: objective-c audio avaudioplayer openal