iOS 设置铃声---加载音乐和音频然后进行播放
在有些应用中需要用到背景音乐和音效,那在程序中是这么实现的。
1.首先加载背景音乐需要用到AVFoundation框架
2.音乐资源都是在包里的,所以需要获得包路径,涉及方法- (id)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;
url其实就是包地址,可以通过[[NSBundlemainBundle]pathForResource:@"背景音乐" ofType:@"caf"];获得到路径path,然后用NSURL的fileURLWithPath方法将path转化为url;
3.设置音乐播放次数.numberOfLoops。设为0仅播放一次;设为1则循环1次播放2次;设为-1则循环播放不间断;
4.设置音乐声音大小.volume。
5.准备播放,调用方法 prepareToPlay。
6.开始播放,调用方法 play;停止播放:stop;
NSString *path = [[NSBundle mainBundle]pathForResource:@"背景音乐" ofType:@"caf"];
NSURL *url = [NSURL fileURLWithPath:path];
AVAudioPlayer *player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:nil];
player.numberOfLoops = -;
player.volume = 0.5f;
[player prepareToPlay];
[player play];
而加载音效则需要用到AudioToolbox框架,和音乐一样需要加载包路径,使用的方法是AudioServicesCreateSystemSoundID,这是个c语言的方法,其中传入的url需要用到__bridge进行转换,传出一个SystemSoundID来提供播放的时候调用,播放使用的方法是AudioServicesPlaySystemSound(SystemSoundID inSystemSoundID) 。
NSString *path = [[NSBundle mainBundle]pathForResource:soundFileName ofType:nil];
NSURL *url = [NSURL fileURLWithPath:path];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID); AudioServicesPlaySystemSound(soundID);<br>
此外还有个方法是AudioServicesPlayAlertSound,此方法在播放音效的同时会发出震动,给用户提醒。
iOS 设置铃声---加载音乐和音频然后进行播放的更多相关文章
- H5 audio 通过canplaythrough预加载音乐
1.背景 微信里做H5活动页面,对音乐使用autoplay, android没问题,IOS半天播不出来,因此考虑对音乐进行预加载(不是preload) <!DOCTYPE html> &l ...
- H5页面实现一个Audio标签加载多个音频文件,并进行播放和展示音频长度
最近微信项目中有需求,要将微信端发送过来的amr格式的语音文件,在项目中的页面上进行展示和播放,实现方式如下: 1.首先java后台收到微信端的消息推送的时候,使用 ffmpeg将amr格式的音频文件 ...
- Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制
一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...
- [IOS 开发] 懒加载 (延迟加载) 的基本方式,好处,代码示例
懒加载的好处: 1> 不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 2> 每个属性的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合 ...
- xamarin UWP设置HUD加载功能
使用xamarin开发的时候经常用到加载HUD功能,就是我们常见的一个加载中的动作,Android 下使用 AndHUD , iOS 下使用 BTProgressHUD, 这两个在在 NuGet 上都 ...
- 【iOS】WebView加载HTML图片大小自适应与文章自动换行
在很多App中都会使用到webview,尤其是在加载新闻内容等文章形式的数据时.因为图文混编以及不同字体格式的显示,在iOS进行编辑 和显示都是一大问题(当然,iOS中也可以用CoreText进行绘制 ...
- iOS异步图片加载优化与常用开源库分析
网络图片显示大体步骤: 1.下载图片: 2.图片处理(裁剪,边框等): 3.写入磁盘: 4.从磁盘读取数据到内核缓冲区: 5.从内核缓冲区复制到用户空间(内存级别拷贝): 6.解压缩为位图(耗cpu较 ...
- FLAnimatedImage -ios gif图片加载框架介绍
简介 FLAnimatedImage 是 Flipboard 团队开发的在它们 App 中渲染 GIF 图片使用的库. 后来 Flipboard 将 FLAnimatedImage 开源出来供大家使用 ...
- YYWebImage——iOS异步图片加载框架
本文转载至 http://www.mobile-open.com/2015/86582.html YYWebImage 是一个异步图片加载框架 (YYKit 组件之一). 其设计目的是试图替代 S ...
随机推荐
- CE 内存申请
char ch_ReadByte='H'; char *ptr_OneLineData; unsigned ); if ((ptr_OneLineData = (char *)malloc(bufsi ...
- phpstorm version 2016.2 License Server激活
phpstorm version 2016.2 License Server激活 安装后,在激活的时候选择 license server; 输入如下地址激活: http://jetbrains.ten ...
- 自定义响应结构 Json格式转换 工具类
import java.util.List; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterx ...
- 入门级 mongodb
谢谢 转载的.. (1)下载mongodb window版本:http://www.mongodb.org/dr/downloads.mongodb.org/win32/mongodb-win32 ...
- js 常用方法
1: 五秒后跳出提示框 setTimeout("alert('已经过了五秒了')",5000) 2: 十秒后自动关闭窗口 <script language="ja ...
- javascript操控浏览器
测试环境为Chrome浏览器47.0.2526.106 m 测试窗口为F12->Console 跳转网页 // 跳转到百度 window.location.href = "https: ...
- acm之poj题库1001方法
题目所言是银行等不能用四舍五入等影响精度的方法来计算的情况,是为提出背景.因此需要特殊的编写.这里使用了好几种方法才找到一个合适的方法.因为C++或者C缺乏类库,又跟底层关联太大,缺乏常用的类库,在写 ...
- lumen Response
1.基本响应 所有路由和控制器都会返回某种被发送到用户浏览器的响应,Lumen提供了多种不同的方式来返回响应,最基本的响应就是从路由或控制器返回一个简单的字符串: $app->get('/', ...
- Tips For Your Maya Plugin Development
(The reason why I write English blog is that I'm trying to improve my written English. The Chinese v ...
- 可扩展Web架构与分布式系统(转)
1.1. web分布式系统的设计原则 搭建和运营一个可伸缩的web站点或者应用程序意味着什么?在原始层面上这仅仅是用户通过互联网连接到远程资源-使系统变得可伸缩的部分是将资源.或者访问的资源,分布于多 ...