一、简单介绍

简单来说,音频可以分为2种

(1)音效

又称“短音频”,通常在程序中的播放时长为1~2秒

在应用程序中起到点缀效果,提升整体用户体验

(2)音乐

  比如游戏中的“背景音乐”,一般播放时间较长

框架:播放音频需要用到AVFoundation.framework框架

二、音效的播放

1.获得音效文件的路径

  NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav" withExtension:nil];

2.加载音效文件,得到对应的音效ID

  SystemSoundID soundID = 0;

  AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);

3.播放音效

  AudioServicesPlaySystemSound(soundID);

注意:音效文件只需要加载1次

4.音效播放常见函数总结

加载音效文件

  AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID)

释放音效资源

  AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID)

播放音效

  AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)

播放音效带点震动

  AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)

三、程序示例

先导入需要依赖的框架

导入需要播放的音效文件素材

  

说明:AVFoundation.framework框架中的东西转换为CF需要使用桥接。

代码示例:

YYViewController.m文件

//
//  YYViewController.m
//  14-音效播放
//
//  Created by apple on 14-8-8.
//  Copyright (c) 2014年 yangyong. All rights reserved.
//

#import "YYViewController.h"
#import

@interface YYViewController ()

@end

@implementation YYViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1.获得音效文件的全路径
   
    NSURL *url=[[NSBundle mainBundle]URLForResource:@"buyao.wav" withExtension:nil];
   
    //2.加载音效文件,创建音效ID(SoundID,一个ID对应一个音效文件)
    SystemSoundID soundID=0;
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &soundID);
   
    //把需要销毁的音效文件的ID传递给它既可销毁
    //AudioServicesDisposeSystemSoundID(soundID);
   
    //3.播放音效文件
    //下面的两个函数都可以用来播放音效文件,第一个函数伴随有震动效果
    AudioServicesPlayAlertSound(soundID);
    //AudioServicesPlaySystemSound(

iOS开发拓展篇—音效的播放相关推荐

  1. iOS开发拓展篇—音频处理(音乐播放器3)

    iOS开发拓展篇-音频处理(音乐播放器3) 说明:这篇文章主要介绍音频工具类和播放工具类的封装. 一.控制器间数据传递 1.两个控制器之间数据的传递 第一种方法:self.parentViewCont ...

  2. iOS开发拓展篇—CoreLocation简单介绍

    iOS开发拓展篇-CoreLocation简单介绍 一.简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如 (1)导航:去任意陌生的地方 (2)周边:找餐馆.找酒店.找银行.找电影院 ...

  3. iOS开发拓展篇——如何把项目托管到GitHub

    iOS开发拓展篇--如何把项目托管到GitHub 说明:本文主要介绍如何把一个OC项目托管到Github,重操作轻理论. 第一步:先注册一个Github的账号,这是必须的 注册地址:Github官网注 ...

  4. iOS开发拓展篇—CoreLocation地理编码

    iOS开发拓展篇-CoreLocation地理编码 一.简单说明 CLGeocoder:地理编码器,其中Geo是地理的英文单词Geography的简写. 1.使用CLGeocoder可以完成" ...

  5. iOS开发拓展篇-XMPP简单介绍

    iOS开发拓展篇-XMPP简单介绍 一.即时通讯简单介绍 1.简单说明 即时通讯技术(IM)支持用户在线实时交谈.如果要发送一条信息,用户需要打开一个小窗口,以便让用户及其朋友在其中输入信息并让交谈双 ...

  6. iOS开发拓展篇—音频处理(音乐播放器6)

    一.图片处理 说明: Aspect表示按照原来的宽高比进行缩放. Aspectfit表示按照原来的宽高比缩放,要求看到全部图片,后果是不能完全覆盖窗口,会留有空白. Aspectfill表示按照原来的 ...

  7. iOS开发拓展篇—蓝牙之mutipeerConnectivity的使用

    蓝牙 mutipeerConnectivity 简介 * iOS 7引入的一个全新框架 * 多点连接 * 替代GameKit框架 * 多用于文件的传输 * iOS设备不联网也能跟附近的人聊天 * Fi ...

  8. iOS开发拓展篇—静态库

    一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开源库 公开源代码,能看到具体实现 比如SDWebImage. ...

  9. iOS开发多线程篇—多线程简介

    iOS开发多线程篇-多线程简介 一.进程和线程 1.什么是进程 进程是指在系统中正在执行的一个应用程序 每一个进程之间是独立的.每一个进程均执行在其专用且受保护的内存空间内 比方同一时候打开QQ.Xc ...

最新文章

  1. Login failed with an access denied error.
  2. Thread.Join()用法的理解
  3. xp宿主机和VMware下Ubuntu12.04共享文件夹
  4. Go判断输出数据类型
  5. 苹果关掉200m限制_苹果下载大于200M限制
  6. [转载] python通过adb获取android手机耗电量
  7. caffe linux 教程,Caffe 深度学习入门教程 - 安装配置Ubuntu14.04+CUDA7.5+Caffe+cuDNN_Linux教程_Linux公社-Linux系统门户网站...
  8. 华为云PB级数据库GaussDB(for Redis)揭秘第13期:如何搞定推荐系统存储难题
  9. 探探被安卓市场下架 官方回应:深入开展整改
  10. 树莓派舵机 c语言,树莓派控制SG90舵机
  11. Little_Women6.txt
  12. 2010.3.13郊野公园小记,以及参观托驼峰航线纪念碑
  13. 记录第一次用阿里云(Windows主机)部署SSM项目(Spring+SpringMVC+Mybatis)
  14. LSUN数据集读取和解压,mdb格式转换为jpg格式(保姆教程)
  15. 第三方登陆(一)微信登陆
  16. t3插密码狗不显示服务器,登陆T3时,用户名和账套都不显示,显示没有检测到合法的LISENCE,需要重新注册密码狗,在注册社区后,搜索.cjt的文件,搜不到...
  17. Windows 取证之$MFT
  18. javaIO模型-Socket实现一个简单的客服聊天功能的改造(二)
  19. U盘文件丢失选择什么数据恢复软件好
  20. 人工智能时代,机遇与挑战并存

热门文章

  1. 解决苹果浏览器点击事件无法生效的问题
  2. P1875 佳佳的魔法药水
  3. 一些生活中常用的英语单词
  4. 漫反射:兰伯特和半兰伯特
  5. 计算机少了4个磁盘,电脑硬盘突然少了几个分区,这是怎么回事?如何修复?...
  6. 地方门户网站运营需要注意哪些地方?
  7. 地方门户类网站建设解决方案
  8. 截取计算机全屏画面的方法有,电脑怎么截图全屏 详细方法介绍
  9. Win32 Disk Imager Error 5: Access is Denied 解决方案
  10. PDF工具箱-分割提取合并