什么是iPhone上音效的最佳格式

时间:2009-08-07 14:04:33

标签: iphone audio ipod-touch

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

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

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

任何建议都会受到赞赏......如果有人可以推荐一款价格合理的工具来处理可以生成推荐格式的音频,也会有所帮助。感谢。

5 个答案:

答案 0 :(得分:10)

您可以使用IMA4压缩文件,这些文件从WAV文件提供1:4压缩,并由硬件解压缩(您可以使用AVAudioPlayer加载它们。)

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

我正在使用OpenAL的IMA4文件,因此我使用基于this post的代码手动解压缩它们。

答案 1 :(得分:2)

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

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

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

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

答案 2 :(得分:1)

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

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

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

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

如果您还没有,请在声音支持上阅读Apple的iPhone Application Programming Guide

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

答案 3 :(得分:0)

我唯一可以使用的格式是CAF。它也是苹果代码示例中最多的一个。如果您使用的是短音效,则尺寸不会有问题。

答案 4 :(得分:0)

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

对于背景音乐,mp3很好。