[iOS 转]系统声音服务与震动
2016-06-30 10:14
393 查看
系统声音服务(System Sound Services)提供了一个接口,用于播放不超过30秒的声音。它支持的文件格式有限,具体地说只有CAF、AIF和使用PCM或IMA/ADPCM数据的WAV文件。由于这些函数没有提供操纵声音和控制音量的功能,所以当你为多媒体或者游戏创建专门的配乐时,不要使用系统声音服务。
iOS使用系统声音服务来支持三种不同的通知:
1. 声音:立刻播放一个简单的声音文件。如果手机被设置为静音,用户什么也听不到
2. 提醒:播放一个声音文件,如果手机被设置为静音或震动,将通过震动提醒用户
3. 震动:震动手机,而不考虑其他设置
要在项目中使用系统声音服务,首先要导入AudioToolbox.h
系统声音服务并非是通过类实现的,而是使用传统的C语言函数调用来触发播放操作。要播放音频,需要使用的两个函数是AudioServicesCreateSystemSoundID 和 AudioServicesPlaySystemSound。还需要声明一个类型为SystemSoundID的变量,它表示要使用的声音文件。下面演示了如何加载并播放声音:
其实这段代码应该这样来理解:
在写这个功能时最主要是两句代码:
soundID ==> 1000 ~1035 以此类推
震动:
如果视图震动不支持震动的设备(如iPad2),将静默失败。因此将震动代码留在应用程序中不会有任何害处,而不管目标设备是什么。
iOS使用系统声音服务来支持三种不同的通知:
1. 声音:立刻播放一个简单的声音文件。如果手机被设置为静音,用户什么也听不到
2. 提醒:播放一个声音文件,如果手机被设置为静音或震动,将通过震动提醒用户
3. 震动:震动手机,而不考虑其他设置
要在项目中使用系统声音服务,首先要导入AudioToolbox.h
#import <AudioToolbox/AudioToolbox.h>
系统声音服务并非是通过类实现的,而是使用传统的C语言函数调用来触发播放操作。要播放音频,需要使用的两个函数是AudioServicesCreateSystemSoundID 和 AudioServicesPlaySystemSound。还需要声明一个类型为SystemSoundID的变量,它表示要使用的声音文件。下面演示了如何加载并播放声音:
- (IBAction)testSystemSound:(id)sender { SystemSoundID soundID; NSString *strSoundFile = [[NSBundle mainBundle] pathForResource:@"alertsound" ofType:@"wav"]; AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:strSoundFile],&soundID); AudioServicesPlaySystemSound(soundID); }
其实这段代码应该这样来理解:
在写这个功能时最主要是两句代码:
SystemSoundID soundID; AudioServicesPlaySystemSound(soundID);
soundID ==> 1000 ~1035 以此类推
震动:
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
如果视图震动不支持震动的设备(如iPad2),将静默失败。因此将震动代码留在应用程序中不会有任何害处,而不管目标设备是什么。
相关文章推荐
- iOS Provisioning Profile(Certificate)与Code Signing详解
- ios编程基础—视图
- iOS开发中的一些常用方法
- IOS开发证书变成“此证书的签发者无效”解决方法
- ios时间戳与时间的转换
- iOS dispatch_time_t
- tabbar得title和navigationbar的title
- RAC/MVVM个人学习资源汇总
- 《Motion Design for iOS》(三十)
- 【代码笔记】iOS-下拉选项cell
- 【代码笔记】iOS-下拉选项cell
- iOS中的NSURLCache数据缓存类用法解析
- iOS沙盒路径及路径下数据的存储和读取
- iOS 开发中的争议(二)
- iOS 开发中的争议(一)
- ioS之Socket心跳包机制与实现
- iOS之实现后台socket长连接
- iOS发展史(里程碑)
- iOS中常用的几种设计模式
- iOS 计算缓存文件的大小