iOS中AVFoundation的简单使用—音乐的播放
2019独角兽企业重金招聘Python工程师标准>>>
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>@interface ViewController ()@property (nonatomic, strong)AVAudioPlayer *player;@property (nonatomic, weak)UILabel *timer;@property (nonatomic, strong)NSTimer *t;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 首先创建一个label用来显示音乐的总时长和当前的时间;UILabel *timer = [[UILabel alloc]initWithFrame:CGRectMake(0, 0,100, 30)];self.timer = timer;timer.textAlignment = NSTextAlignmentCenter;self.timer.center = self.view.center;[self.view addSubview:timer];
// 获取音乐文件的url;NSString *path = [[NSBundle mainBundle]pathForResource:@"Groove Coverage-Runaway" ofType:@"mp3"];NSURL *url = [NSURL fileURLWithPath:path];NSError *error = nil;
// 创建一个播放对象;AVAudioPlayer *player = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];if (error) {NSLog(@"创建播放对象失败:%@",error);return;}else {self.player = player;
// 这一步必须执行,只有各就各位(创建播放对象)、预备(prepareToPlay:准备播放)之后发令枪才会响起(才能够play);[self.player prepareToPlay];}
}//定时自动调用的方法,用于随时设置label显示的播放时间。
- (void)setUpTimer {//isPlaying为BOOL属性,播放对象是否正在播放。if (self.player.isPlaying) {
// self.player.currentTime,如果player正在播放此属性为当前的播放时间,也可以设置player的播放偏移(便宜到指定的时间点 开始播放)。
// self.player.duration,此属性为player播放音乐的总时长。self.timer.text = [NSString stringWithFormat:@"%d:%d/%d:%d",(int)self.player.currentTime/60,(int)self.player.currentTime%60,(int)self.player.duration/60,(int)self.player.duration%60];}else {self.timer.text = @"等待播放";}}-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {if (self.player.isPlaying) {[self.t invalidate];
// pause 暂停;还有十个stop的方法,但是现在与pause等效了。[self.player pause];}else {NSTimer *t = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(setUpTimer) userInfo:nil repeats:YES];self.t = t;
// play:播放。[self.player play];}}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end
当然除了这些还有
volume:设置声音的大小为float值取值范围为0.0-1.0;
enableRate:BOOL是否可已设置音乐的播放速率;
rate:float在enableRate设置为YES时可以设置音乐的播放速率,默认为1,0.5即为半速,2.0即为双倍速。
numberOfLoops:loop即为循环。number是次数。由此可证numberOfLoops即为循环次数。。。
转载于:https://my.oschina.net/ruiruiheshui/blog/673036
iOS中AVFoundation的简单使用—音乐的播放相关推荐
- iOS中SDK的简单封装与使用
一.功能总述 在博客开始的第一部分,我们先来看一下我们最终要实现的效果.下图中所表述的就是我们今天博客中要做的事情,下方的App One和App Two都植入了我们将要封装的LoginSDK, 两个A ...
- 简单的音乐在线播放网页
调用网易云提供的音乐接口,编写一个简易的音乐在线播放网页 一.功能实现: 1.通过在输入框输入要查询的文字,调用后台接口获取响应的数据,并把需要的数据渲染到左侧. 2.通过点击可以选中左侧播放栏的某一 ...
- 在iOS中实现一个简单的画板App
在这个随笔中,我们要为iPhone实现一个简单的画板App. 首先需要指出的是,这个demo中使用QuarzCore进行绘画,而不是OpenGL.这两个都可以实现类似的功能,区别是OpenGL更快,但 ...
- Unity中通过场景切换但音乐继续播放
在场景切换的过程中,我们希望场景中的背景音乐继续播放而不是从新播放,这时我们要通过DontDestroyOnLoad(this.gameObject)函数来实现这样的功能; 首先我们新建两个场景,将场 ...
- IOS中扩展机制Category和associative
在ios开发中,有时候会遇到以下的问题,需要在一个类中添加自己的一些属性和方法.一般的做法是重写一个类来继承它,但是有时候就只是需要添加一些简单的属性和方法,那么这样做就显得过于麻烦,其实在IOS中还 ...
- 如何从ios酷我音乐盒中导出已下载的音乐文件(使用Java编程实现)
本工具已经编写了第二版,为不了解编程的读者提供了可以直接使用的软件,请移步这里阅读和使用 http://blog.csdn.net/jzj1993/article/details/44459983 本 ...
- ios 使用AVFoundation从视频中提取音频
ios 使用AVFoundation从视频中提取音频 在导出音频文件时候,使用 m4a格式或者wav格式,总会遇到某些视频无法正常导出,使用caf(core audio format)则可以正常导出. ...
- 1、OPenGL ES - 简介、iOS中GLKit简单应用
OPenGL ES - 简介.iOS中GLKit简单应用 一.OPenGL ES 1.简介: OpenGL ES 是以手持和嵌入式为目标的高级的3D图形应用程序编程接口(API),OpenGL ES ...
- iOS开发--手把手教你制作音乐播放器
我个人之前有个想法,把平常用的小软件,闲暇之余自己都实现一个迷你版本,打造自己的app专属文件夹,比如闹钟.音乐播放器.视频播放器.电子书以及贪吃蛇之类的小游戏.我相信通过实现这些小程序,能够进一步熟 ...
最新文章
- Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) B. Verse Pattern 水题
- 实战 Prometheus 搭建监控系统
- (转载)IT未来发展五大趋势
- STM32开发 -- 状态机与状态切换逻辑
- Linux Redis 重启数据丢失解决方案,Linux重启后Redis数据丢失解决方
- 关系数据库基础:函数依赖知识笔记
- c# 笔记 数据类型转换 数组 函数
- Docke--利用 commit 理解构建镜像
- Redis的AOF持久化的实现
- 【推荐实践】图片主题模型在推荐系统的应用实践
- 【图像增强】python图像数据增强
- watson机器人_使您的聊天机器人看起来更加智能! Watson Assistant的隐藏功能。
- python简易版猜单词游戏_Python实现简单的猜单词小游戏
- 斐波那契堆的C++实现
- HTTP Basic Auth:使用和Postman 测试
- 【LeetCode LCP 3】机器人大冒险
- Python-10.1-面向对象
- 福建食用菌产业博览会盛大开幕 谋定中国农民丰收节交易会
- Js 下载文件流支持IE
- tomcat配置pid文件
热门文章
- 实用 —— PowerCLI (一)
- 主动找智能钥匙 PKE取代RKE是大势所趋
- 80 after generation to marry or not to marry that is a question
- 北京.net俱乐部博客园小组成立了
- sql server 服务器之间传递消息,SQL Server 2008 Service Broker教程 - 无法接收消息(transmission_status中的异常)...
- linux编译安装madam,linux 下 使用 mdadm 创建阵列
- 登录方式1:MySQL自带客户端
- Pod详解-资源配额
- Java连接Redis-Jedis简介
- 配置Swagger2