免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1339 | 回复: 0

[iOS] iOS音效 [复制链接]

论坛徽章:
0
发表于 2015-06-01 10:52 |显示全部楼层
  1. //AudioToolbox.framework是一套基于C语言的框架,使用它来播放音效其本质是将短音频注册到系统声音服务(System Sound Service)

  2. //System Sound Service的限制:
  3. //1.音频播放时间不能超过30s
  4. //2.数据必须是PCM或者IMA4格式
  5. //3.音频文件必须打包成.caf、.aif、.wav中的一种(注意这是官方文档的说法,实际测试发现一些.mp3也可以播放)
复制代码
1.png
播放音频的方法:
  1. /**
  2. *  播放完成回调函数
  3. *
  4. *  @param soundID    系统声音ID
  5. *  @param clientData 回调时传递的数据
  6. */
  7. void soundCompleteCallback(SystemSoundID soundID,void * clientData){
  8.     NSLog(@"播放完成...");
  9. }

  10. /**
  11. *  播放音效文件
  12. *
  13. *  @param name 音频文件名称
  14. */

  15. -(void)playSoundEffect:(NSString *)name{
  16.     NSString *audioFile=[[NSBundle mainBundle] pathForResource:name ofType:nil];
  17.     NSLog(@"%@",audioFile);
  18.     NSURL *fileUrl=[NSURL fileURLWithPath:audioFile];
  19.     //1.获得系统声音ID
  20.     SystemSoundID soundID=0;
  21.     /**
  22.      * inFileUrl:音频文件url
  23.      * outSystemSoundID:声音id(此函数会将音效文件加入到系统音频服务中并返回一个长整形ID)
  24.      */
  25.     AudioServicesCreateSystemSoundID((__bridge CFURLRef)(fileUrl), &soundID);
  26.     //如果需要在播放完之后执行某些操作,可以调用如下方法注册一个播放完成回调函数
  27.     AudioServicesAddSystemSoundCompletion(soundID, NULL, NULL, soundCompleteCallback, NULL);
  28.     //2.播放音频
  29.     AudioServicesPlaySystemSound(soundID);//播放音效
  30.     //    AudioServicesPlayAlertSound(soundID);//播放音效并震动
  31. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP