-1-  AuidoSerVices 常用于提示音的播放,该种音频具有以下四种特点:

1>长度一般不超过30秒,不需要对播放过程进行控制

2>不能循环播放,不能暂停

3>不能播放立体声

4>不能播放混音

-2-创建提示音频AuidoSerVices。。的准备工作

1.添加一个系统类库。audioToolbox.framework

2.导入头文件在viewController中 #import <AudioToolbox/AudioToolbox.h>

-3-提示音的几个常用方法:

1.获得音效文件的路径

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

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

   SystemSoundID soundID = 0;

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

3.播放音效

   AudioServicesPlaySystemSound(soundID);

4.音效播放的c语言函数

音效播放的函数都是基于c语言编写的,所以在使用的过程中要注意与oc方法使用的区别

加载音效文件

  AudioServicesCreateSystemSoundID(CFURLRef inFileURL, SystemSoundID *outSystemSoundID)

释放音效资源

  AudioServicesDisposeSystemSoundID(SystemSoundID inSystemSoundID)

播放音效

  AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID)

播放音效带点震动

  AudioServicesPlayAlertSound(SystemSoundID inSystemSoundID)

-4-程序简单实现

#import "RootViewController.h"
#import <AudioToolbox/AudioToolbox.h>
@interface RootViewController ()@end@implementation RootViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];if (self) {// Custom initialization
    }return self;
}- (void)viewDidLoad
{[super viewDidLoad];[self creatUIButton];
}
-(void)creatUIButton{UIButton * btn=[UIButton buttonWithType:UIButtonTypeCustom];btn.frame=CGRectMake(100, 100, 100, 100);btn.backgroundColor=[UIColor grayColor];[btn setTitle:@"播放" forState:UIControlStateNormal];[btn setTitleColor:[UIColor cyanColor ] forState:UIControlStateNormal];[btn addTarget:self action:@selector(pressBtn:) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:btn];
}
-(void)pressBtn:(id)sender{//1.获取全路径 因为加载音效需要使用CFURLRef 来加载音乐,所以使用能和它相互转换的NSURL 来转换路径NSString * pathStr= [[NSBundle mainBundle]pathForResource:@"sound" ofType:@"wav"];NSURL * url=[NSURL fileURLWithPath:pathStr];//2.创建音效ID 一个ID代表一个音效文件
    SystemSoundID SID;//3.将音乐文件与ID绑定   将url 强转 将sid与之绑定AudioServicesCreateSystemSoundID((__bridge CFURLRef)url, &SID);//4.播放音效
    AudioServicesPlayAlertSound(SID);//5.当我们需要在音效播放结束时取消该音效则需要使用以下方法 函数名固定
    AudioServicesAddSystemSoundCompletion(SID, nil, nil,finishSound, nil);}
//该函数为系统方法,函数名,参数固定,不能修改
void finishSound(SystemSoundID SID,void * finish){//6.撤销SID
    AudioServicesDisposeSystemSoundID(SID);}

注意:点击播放,就可以播放音效文件

转载于:https://www.cnblogs.com/Sweet-Magic/p/4737905.html

UI音乐播放之入门篇AudioSerVicesPlay相关推荐

  1. vue音乐播放器之入门篇

    第一章 前言 这里对应的是课程中的第一章到第三章,因为前三章内容比较少,我就把它们合并成一章.我比较懒,要让我多写三章的内容,没门.这一章会比较简单,是一个项目的准备过程,仅仅开发了两个很简单的基础组 ...

  2. 基于FPGA的SD卡音乐播放器之WM8731篇

    基于FPGA的SD卡音乐播放器之WM8731篇 目录 前言 一.I2C驱动模块 二.WM8731寄存器配置模块 三.WM8731时钟生成模块 四.音频发送模块 总结 前言 这个题目是我之前7月初做的一 ...

  3. 基于FPGA的SD卡音乐播放器之完结篇

    基于FPGA的SD卡音乐播放器之完结篇 目录 前言 一.WAV格式 二.FIFO模块 三.音频-SD卡交互模块 四.锁相环模块 五.按键去抖模块 六.按键控制模块 总结 前言 前面已经介绍了WM873 ...

  4. vueJs开发音乐播放器第二篇(点击歌单跳出详情页)

    继上一篇开发音乐播放器歌单列表页 (1.使用router定义跳转链接,2. 使用axios得到音乐第三方数据,并渲染到页面上,3.组件之间传值(props)) 1.接下来使用了vue-router路由 ...

  5. Electron | 简易音乐播放器入门

    本文基于慕课网课程:Electron开发仿网易云播放器,通过该播放器的制作来入门Electron框架. 吐槽一下名字:根本就不是仿网易云,不需要这么浮夸的名字.课程内容不错,对于入门Electron来 ...

  6. 项目记录:基于QT的简易音乐播放器

    一.功能介绍 1.能够自定义背景图片 2.实现了音乐播放器的最基本功能,即播放与否.切换歌曲及歌单.显示歌曲信息.调节音量.播     放模式等 3.根据所选中的框体,更新播放列表及播放顺序 4.从播 ...

  7. 基于Qt的音乐播放器制作

    基于Qt的音乐播放器制作 使用浏览器自带工具抓包歌曲资源 开发人员工具抓包 点击浏览器右上角的 "-" 快捷键(Alt + F): 点击其中的"更多工具" ➡ ...

  8. HTML5移动端音乐播放器(启蒙篇)

    这段时间公司一直在做一个PC的教育类单页应用,庞大复杂,涉及非常多H5的知识,音频就是其中的一部分.前些天偷台风的闲暇时写了一个移动端音乐播放器,作为练手项目. 在线地址:请猛击这里 源码:请猛击这里 ...

  9. UI设计灵感|音乐播放器界面如何设计?

    有些时候没有灵感是非常头疼的事情,但是灵感何来?真正好的设计师,肯定是懂得欣赏美,热爱生活,并且懂得用素材来为自己腾挪更多的空间创造出属于自己风格的作品,好的创造者,是举一反三,脱陈炼新,从而锤炼出自 ...

最新文章

  1. 理解Android系统的进程间通信原理------RPC机制
  2. 所以Apache基金会不受美国法律约束?
  3. java定义基础变量语句_编程语言第一:JAVA语言基础,变量
  4. 《天天数学》连载27:一月二十七日
  5. 要不要买保险,看这篇就够了
  6. c语言高效编程pdf,C语言高效编程的四大绝招
  7. VMware 修复可窃取管理员凭据的高危漏洞
  8. nginx 负载均衡proxy 配置
  9. mysql升级_MySQL数据库怎么升级 MySQL数据库升级教程
  10. 毕业设计:基于SSM框架的学生实习管理系统
  11. android 左右声道,Android立体声pcm的数据结构,左右声道拆分、左右声道反转
  12. 正则表达式的语法规则
  13. windows 高级
  14. JDK: Date Process
  15. 多校官宣:第二轮“双一流”,新增这些学科!
  16. C++到底还能做什么? ----感觉说的还是很有道理的,共勉!
  17. 光散射理论的简要概述
  18. 银行离岸汇款客户交易预测
  19. [Linux][RK3399] 以太网调试 — 利用 ping 和 pathping 工具
  20. Python||报错:ModuleNotFoundError: No module named ‘nltk‘

热门文章

  1. iOS多线程系列之GCD栅栏(barrier)实现同步锁
  2. Winform软件,不要在线程里操作UI
  3. Android Studio(九):引用jar及so文件
  4. EasyUI Datagrid 自定义列、Foolter及单元格编辑
  5. 2010年一月份兑换公告
  6. Visual Studio 2010 Ultimate敏捷之道:特性解析
  7. JSpider(3):JSpider的结构
  8. 留言板小系统程序开发
  9. 使用dd工具对磁盘RAID5和10进行I/O性能测试
  10. Linux平台 Oracle 11gR2 RAC安装Part1:准备工作