您的位置:首页 > 移动开发 > IOS开发

iOS-播放系统声音

2011-08-26 10:51 399 查看
iOS可通过两种方式播放声音:
* 播放压缩的声音文件,比如mp3文件,一般使用播放声音中提到的方法,适用于播放时间较长,比如大于30秒,AVAudioPlayer可以提供更多的控制特性,比如暂停等等

* 播放系统声音,比如翻页的哗啦声,应该使用播放系统声音的方法,因为压缩的声音文件比播放wav等非压缩声音文件在播放前消耗更多的处理器资源,这样的声 音还要频繁的播放,而且,因为系统声音文件都较小,一般小于30秒,因此即使压缩格式,也不会节省多少存储空间。
本文介绍后者,播放系统声音。
系统声音属于AudioToolbox框架,因此使用前,需要给项目安装框架:





外,需要引用头文件:

1

#import <AudioToolbox/AudioToolbox.h>

播放系统声音,基本思路是:
* 在播放前,比如控制器初始化阶段,注册系统声音,并保存一个系统声音id

* 在需要播放系统声音的时候只需调用系统服务的全局方法,传入系统声音id即可
注册系统声音,首先要创建实例变量,供后面播放时引用

1

SystemSoundID soundID;

然后,在比如控制器初始化代码部分,加入:

12

NSURL *filePath   = [[NSBundle mainBundle] URLForResource:   @"pageflip" withExtension: @"aif"];
AudioServicesCreateSystemSoundID((CFURLRef)filePath, &soundID);

这里的pageflip.aif是系统声音允许的格式。还可以接受:
* caf

* wav
如果你有MP3文件,可以转换成上述格式文件。我使用的是mac系统,临时找的Switch,可在网站(http://www.nch.com.au/switch/index.html)上下载试用版。





播放声音很简单:

1

AudioServicesPlaySystemSound(soundID);

原文链接:http://marshal.easymorse.com/archives/4064
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: