iOS 可通过两种方式播放声音:
播放压缩的声音文件,比如
mp3 文件,一般使用
播放时间较长,比如大于
30 秒,AVAudioPlayer 可以提供更多的控制特性,比如暂停
等等
播放系统声音,比如翻页的哗啦声,应该使用播放系统声音的方法,因为压缩的声
音文件比播放
wav 等非压缩声音文件在播放前消耗更多的处理器资源,这样的声音还
要频繁的播放,而且,因为系统声音文件都较小,一般小于
30 秒,因此即使压缩格式,
也不会节省多少存储空间。
本文介绍后者,播放系统声音。
系统声音属于
AudioToolbox 框架,因此使用前,需要给项目安装框架:
另外,需要引用头文件:
#import
<AudioToolbox/AudioToolbox.h>
播放系统声音,基本思路是:
在播放前,比如控制器初始化阶段,注册系统声音,并保存一个系统声音
id
在需要播放系统声音的时候只需调用系统服务的全局方法,传入系统声音
id 即可
注册系统声音,首先要创建实例变量,供后面播放时引用
SystemSoundID soundID;
然后,在比如控制器初始化代码部分,加入:
NSURL *filePath = [[NSBundle mainBundle] URLForResource: @"pageflip"
withExtension: @"aif"];
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);
这里的
pageflip.aif 是系统声音允许的格式。还可以接受:
caf
wav
如果你有
MP3 文件,可以转换成上述格式文件。