IOS开发音频播放之System Sound services
2015-12-13 09:25
381 查看
使用 System Sound Services 方式适合播放一些很小的提示或警告音频,它存在如下限制。
1,声音长度不能超过30秒
2,声音文件必须是PCM或IMA4(IMA4/ADPCM)格式。
3,打包成caf,aif或.wav的文件。
4,不能控制播放的进度。
5,调用方法后立即播放声音。
6,没有循环播放和立体控制。
除此之外,使用System Sound SerVices播放音频时调用系统的震动功能;可以为
使用System Sound Services播放音频的步骤如下。
1,调用
2,如果需要在音频播放完成后执行某些操作,则可调用
3,当需要播放音频时,调用
代码如下:
由于使用System Sound Services 播放音频需要AudioToolbox框架的支持,因此需要为该应用添加AudioToolbox框架。除此之外,还应该在该视图控制器类的第一行使用
1,声音长度不能超过30秒
2,声音文件必须是PCM或IMA4(IMA4/ADPCM)格式。
3,打包成caf,aif或.wav的文件。
4,不能控制播放的进度。
5,调用方法后立即播放声音。
6,没有循环播放和立体控制。
除此之外,使用System Sound SerVices播放音频时调用系统的震动功能;可以为
AudioServicesAddSystemSoundCompletion()函数增加CallBack函数来支持循环播放。
使用System Sound Services播放音频的步骤如下。
1,调用
AudioServicesCreateSystemSoundID(CFURLRef inFileURL,SystemSoundID *outSystemSoundID)函数注册音频文件,该函数的第一个参数代表音频文件的URL(可通过NSURL转换为CFURLRef),第二个参数代表注册该音频文件的SystemSoundID。
2,如果需要在音频播放完成后执行某些操作,则可调用
AudioServicesAddSystemSoundCompletion()函数为指定SystemSoundID指定Callback函数。
3,当需要播放音频时,调用
AudioServicesPlaySystemsound()函数或
AudioServicesPlayAlertSound()函数——其中后一个函数播放音频时会调用系统的震动功能。
代码如下:
// // FKViewController.m // SystemSoundTest // // Created by yeeku on 13-8-7. // Copyright (c) 2013年 crazyit.org. All rights reserved. // #import <AudioToolbox/AudioToolbox.h> #import "FKViewController.h" static void completionCallback(SystemSoundID mySSID) { // Play again after sound play completion // AudioServicesPlaySystemSound(mySSID); NSLog(@"completed"); } @implementation FKViewController SystemSoundID crash; - (void)viewDidLoad { [super viewDidLoad]; // 定义要播放的音频文件的URL NSURL* crashUrl = [[NSBundle mainBundle] URLForResource:@"crash" withExtension:@"wav"]; // 加载音效文件 AudioServicesCreateSystemSoundID((__bridge CFURLRef)crashUrl , &crash); // 为crash播放完成绑定回调函数 AudioServicesAddSystemSoundCompletion(crash, NULL, NULL, (void*)completionCallback ,NULL); } - (IBAction)play:(id)sender { // // 播放crash代表的音频 // AudioServicesPlaySystemSound(crash); // 播放crash代表的音频,并控制设备震动 AudioServicesPlayAlertSound(crash); } @end
由于使用System Sound Services 播放音频需要AudioToolbox框架的支持,因此需要为该应用添加AudioToolbox框架。除此之外,还应该在该视图控制器类的第一行使用
#import<AudioToolbox/AudioToolbox.h>导入AudioToolbox的头文件。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- java音频播放示例分享(java如何播放音频)
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- python通过wxPython打开一个音频文件并播放的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法