14

在 iPhone 或 iToouch 上存储和播放短(2-3 秒)音频音效的推荐音频格式是什么?

iPhone 音频 SDK 文档表明 iPhone 支持多种格式的音频 - 但是每种格式都有缺点:

  • MP3:这是一种高度压缩但也是高质量的编码格式,可以保留丰富的音乐和语音。但是,由于需要使用硬件解码器,因此在 iPhone 上一次只能播放一个 mp3 流。这不包括 mp3 作为音效格式,因为它们会中断背景音乐和/或正在播放的任何用户音乐。
  • WAV: iPhone 仅支持经过 PCM 编码且不需要任何压缩编解码器的 WAV 文件。虽然 WAV 支持许多不同的采样率和位深度,但它会产生非常大的文件(16 位/44.1kHz/立体声音频为 180k/秒)。当您要快速播放许多效果时,大尺寸变得令人望而却步。
  • AIFF:与 WAV 文件有类似的问题 - 不清楚是否支持任何压缩编解码器。据说支持 Apple 无损压缩 - 但我找不到任何可以在使用此压缩时生成 AIFF 的工具。
  • 自定义:您可以使用 iPhone 低级 API 从任何来源播放您自己的音频。但这对于在游戏中播放简单的音效来说似乎有些过头了。我当然不想为此编写自己的音频层和编码器/解码器。

任何建议将不胜感激......如果有人可以推荐一个价格合理的工具来处理可以生成推荐格式的音频,那也会很有帮助。谢谢。

4

5 回答 5

11

您可以使用 IMA4 压缩文件,它提供 WAV 文件的 1:4 压缩并由硬件解压缩(您可以使用AVAudioPlayer.

至于 MP3,您只能以该格式同时播放一个文件,这就是为什么不建议您同时播放多个文件的音效。

我在 OpenAL 中使用 IMA4 文件,所以我使用基于这篇文章的代码手动解压缩它们。

于 2009-08-07T14:12:20.753 回答
2

尽管 WAV 的大小接近,但我对 CAF 格式文件的运气非常好。

至于工具,Audacity 是免费且功能合理的。我主要使用 Amadeus Pro(约 40 美元)。相当不错,并生成所有 iPhone 支持的音频格式(包括 MP3、AIFF、WAVE、AAC 和 CAF)。一个不错的功能是它支持 AudioUnit 和 VST 插件,因此您可以添加 SoundFX。

我也听说过关于 Fission 的好消息(由 Rogue Amoeba 编写),但实际上并没有使用它。他们的其他音频产品非常可靠。

AVAudioPlayer框架非常适合播放短片,但prepareToPlay如果您可以节省内存,您可能需要预加载声音(调用)并保留它们。

于 2009-08-07T19:22:06.323 回答
1

查看 Mac 上的 afconvert 命令行实用程序。它可以在不同的音频格式之间进行许多转换,如果您有很多声音,您可以编写转换脚本...

我使用 SoundToolbox 和 AVAudioPlayer,其中的声音主要是在 GarageBand 中创建的未压缩线性 PCM 中。

SoundToolbox 非常适合播放简短的“Boing”或“click”或您触发播放的其他声音,您不关心停止或弄乱它们的音量等。

如果您想停止播放声音或知道声音是否已播放完毕,AVAudioToolbox 很不错。如果您想通过控制声音的左右分量来播放声音,请查看 OpenAL。

如果您还没有,请阅读 Apple 的关于声音支持的iPhone 应用程序编程指南。

如果声音对您的应用程序很重要,您可能希望利用一些可用的功能来做很少的工作。

于 2009-08-08T04:50:48.973 回答
0

我能够使用的唯一格式是 CAF。它也是来自苹果的大多数代码示例中的一个。如果您使用的是短音效,则大小不会成为问题。

于 2009-08-07T21:35:29.157 回答
0

我一直在使用 Microsoft ADPCM WAV 格式,它从 3.25:1(高质量)压缩到 3.98:1(默认质量)。此外,我将采样率降低到 32000 甚至 22050,具体取决于声音。不需要以立体声保存一些文件 - 单声道也可以很好地减小文件的大小。

对于背景音乐 mp3 很好。

于 2011-11-22T03:23:30.440 回答