使用System Sound Services 播放音效(最简单,比较底层),调用AudioServicesPlaySystemSound()
1、适用范围:一些很小的提示或警告音频。
2、使用限制:
声音长度不能超过30秒 声音文件必须是PCM或IMA4(IMA/ADPCM)格式。(有时候可播放一些特殊的.mp3) 打包成.caf、.aif或.wav文件 不能控制播放进度 调用方法后立即播放声音 没有循环播放和立体声播放控制。
3、AudioServicesPlaySystemSound()还可以调用系统的震动功能
4、可以用AudioServicesAddSystemSoundCompletion()函数增加CallBack函数来支持循环播放
5、播放音乐操作步骤
a、调用AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystem SoundID)函数注册音频文件
b、若需要播放完成后进行某些操作,可调用AudiServicesAddSystemSoundCompletion()函数为指定的SoundID注册CallBack函数。
c、调用AudiServicesPlaySystemSound() // 播放音频
调用AudiServicesPlayAlertSound// 播放音频的同步调用系统的震动功能
6、代码演示
#import "ViewController.h"
#import <AudioToolbox/AudioToolbox.h> static void completionCallback(SystemSoundID mySSID)
{
// 播放完毕之后,再次播放
AudioServicesPlaySystemSound(mySSID);
}
@implementation ViewController
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 播放音效(最简单,比较底层),调用AudioServicesPlaySystemSound()的更多相关文章
- iOS系统声音服务(System Sound Services)
系统声音服务(System Sound Services)提供了一个接口,用于播放不超过30秒的声音.它支持的文件格式有限,具体地说只有CAF.AIF和使用PCM或IMA/ADPCM数据的WAV文件. ...
- Audio播放音效
AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(System Sound Service).System Sound Servi ...
- html5手机端播放音效不卡的方法
html5手机端播放音效不卡的方法线下载http://wxserver.knowway.cn/solosea/js/audioEngine.js 这个是性能不错 然后直接播放音效就可以了 audioE ...
- Android设备 cocos2dx 骨骼动画注册事件播放音效,退到后台再返回黑屏问题
最近遇到一个cocos2dx 骨骼动画注册事件播放音效,在骨骼动画播放的时候,按HOME键退到桌面,再次打开游戏的时候,会黑屏. 解决办法如下,可能不是太完美,至少解决了大部分问题. 1.在org.c ...
- arcgis server "System.Web.Services.Protocols.SoapException: Error processing server request".
在 Arcgis Server 10中创建第一个程序,运行的时候就报错:System.Web.Services.Protocols.SoapException: Error processing se ...
- C#、VB.NET 使用System.Media.SoundPlayer播放音乐
原文:C#.VB.NET 使用System.Media.SoundPlayer播放音乐 同步播放: System.Media.SoundPlayer player = new System.Media ...
- SpriteBuilder中时间线播放音效的弊端
当你美滋滋的在时间线中播放音效的时候,你要想到音效时间线并不适于播放同步于游戏事件的声音,比如碰撞和加速时. 它同样不能被用来播放背景循环的声音,这就本质上拒绝了通过timeline播放背景音乐.甚至 ...
- MessageBeep - Play a System sound
There is a interesting function which can play a System sound. First let's see the WinAPI. //声明: Mes ...
- cocos2dx AudioEngine在Android7上播放音效卡顿问题处理
1.此问题在cocos2dx 3.13/3.14版本(其它版本没有测试过)在Android7中使用AudioEngine的play2d函数播放音效时出现. 调试时出现如下提示: 2.论坛中相关讨论帖地 ...
随机推荐
- poj3694 缩点边双连通分量
Network Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 8669 Accepted: 3175 Descripti ...
- Shiro 学习笔记(一)——shiro简介
Apache Shiro 是一个安全框架.说白了,就是进行一下 权限校验,判断下这个用户是否登录了,是否有权限去做这件事情. Shiro 可以帮助我们完成:认证.授权.加密.会话管理.与web 集成. ...
- AOP 学习笔记
代理是一个设计模式,提供了对目标对象另外的访问方式:即通过代理访问目标对象. 好处:可以在目标对象实现的基础上,增强额外的功能操作. Cglib 代理,也叫作 子类代理. JDK的动态代理有一个限制, ...
- Web前端性能优化教程02:使用内容分发网络
基础知识 服务器离用户越近,HTTP请求的响应时间将更短. CNAME:别名记录,当多个域名需要指向同一服务器IP,可以使用一个域名做A记录指向该服务器IP,然后让多个域名指向该A记录. ICP:In ...
- CAlayer层的属性
iOS开发UI篇—CAlayer层的属性 一.position和anchorPoint 1.简单介绍 CALayer有2个非常重要的属性:position和anchorPoint @property ...
- C++ 隐式类类型转换
<C++ Primer>中提到: “可以用 单个形参来调用 的构造函数定义了从 形参类型 到 该类类型 的一个隐式转换.” 这里应该注意的是, “可以用单个形参进行调用” 并不是指构造函数 ...
- 快速提高 Xcode 编译速度的方法(转载自网上一个大神的方法)
1.,中的 Debug Information Format 的选项中选择 DWARF ,平时调试就是用整个选项,经过测试,速度确实有很大的提升,等发行版本的时候在调回 DWARF with dsYM ...
- linux命令语法格式
一.命令的一般格式 command [option]... [argument]... command [options] [arguments] 具体说明: 1.command: 表示命令的名称,如 ...
- 【BZOJ-4523】路由表 Trie树 + 乱搞
4523: [Cqoi2016]路由表 Time Limit: 30 Sec Memory Limit: 512 MBSubmit: 155 Solved: 98[Submit][Status][ ...
- 【poj3084】 Panic Room
http://poj.org/problem?id=3084 (题目链接) 题意 一个房子里面有m个房间,一些房间之间有门相连,而门的开关只在一个房间有,也就是说只有一个房间可以控制该扇门的开关.现在 ...