分享分享iPhone开发者需掌握的音频内容开发者需掌握的音频内容
在面向iPhone开发游戏之前我对音频格式真的非常陌生。我只知道.WAVs和.MP3之间的区别,但是我却怎么都说不
出.AAC或.CAF到底是什么,或者在Mac上转换音频文件的最佳方法是什么。
后来我发现如果想要在iPhone上开发游戏,我们就必须真正理解文件,数据格式,文件间的转换,录音以及API等基本
元素。
sweet_sound(from dryicons.com)
文件格式和数据格式
我们必须清楚每个音频文件都是由两部分内容所构成:它的文件格式(或者音频容器)以及它的数据格式(或者音频编
码)。
文件格式(或音频容器)是用于形容文件本身的格式。我们可以通过多种不同的方法为真正的音频数据编码。例如CAF文
件便是一种文件格式,它能够包含MP3格式,线性PCM以及其它数据格式的音频。
数据格式(或音频编码)
我们将从音频编码开始阐述(而不是文件格式),因为编码是最重要的环节。
以下是iPhone所支持的数据格式及其相关描述:
1、AAC:AAC是指“高级音频编码”,可以说它MP3格式的延续。你可能会想这种格式将压缩最初的声音而保存在磁盘
中,所以会降低原先声音的质量。但是通常情况下我们很难注意到质量的降低,并且这主要是取决于我们所设置的比
特率。实际上AAC的压缩做得比MP3好多了,特别是在比特率低于每秒128千比特的情况下。
2、HE-AAC:HE-AAC是AAC的超集,HE表示“高效率”。HE-AAC是对于低比特率音频(如流式音频)的优化。
3、AMR:AMR代表“自适应多速率”,是语音优化的另一种编码优化格式,能够突出极低比特率音频。
4、ALAC:同样也被称为“Apple Lossless”,它是一种可以不破坏质量而压缩音频的编码。实际上它大概会压缩原始数
据的40-60%。再加上算法是经过精心设计的,所以我们可以以较快的速度解压数据,这非常适合像iPod或iPhone等设
备。
5、iLBC:这是另一种优化语音的编码,有益于IP语音和流媒体格式。
6、IMA4:这是一种压缩格式,将对16位体的音频文件进行4:1的压缩。这是面向iPhone设备的一种重要编码。
7、线性PCM:这是表示线性脉冲编码调制,主要是描写用于将模拟声音数据转换成数字格式的技术。简单地说也就
是未压缩的数据。因为数据是未压缩的,所以我们便可以最快速地播放出音频,而如果空间不是问题的话这便是
iPhone音频的优先代码选择。