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的简单使用—音乐的播放相关推荐

  1. iOS中SDK的简单封装与使用

    一.功能总述 在博客开始的第一部分,我们先来看一下我们最终要实现的效果.下图中所表述的就是我们今天博客中要做的事情,下方的App One和App Two都植入了我们将要封装的LoginSDK, 两个A ...

  2. 简单的音乐在线播放网页

    调用网易云提供的音乐接口,编写一个简易的音乐在线播放网页 一.功能实现: 1.通过在输入框输入要查询的文字,调用后台接口获取响应的数据,并把需要的数据渲染到左侧. 2.通过点击可以选中左侧播放栏的某一 ...

  3. 在iOS中实现一个简单的画板App

    在这个随笔中,我们要为iPhone实现一个简单的画板App. 首先需要指出的是,这个demo中使用QuarzCore进行绘画,而不是OpenGL.这两个都可以实现类似的功能,区别是OpenGL更快,但 ...

  4. Unity中通过场景切换但音乐继续播放

    在场景切换的过程中,我们希望场景中的背景音乐继续播放而不是从新播放,这时我们要通过DontDestroyOnLoad(this.gameObject)函数来实现这样的功能; 首先我们新建两个场景,将场 ...

  5. IOS中扩展机制Category和associative

    在ios开发中,有时候会遇到以下的问题,需要在一个类中添加自己的一些属性和方法.一般的做法是重写一个类来继承它,但是有时候就只是需要添加一些简单的属性和方法,那么这样做就显得过于麻烦,其实在IOS中还 ...

  6. 如何从ios酷我音乐盒中导出已下载的音乐文件(使用Java编程实现)

    本工具已经编写了第二版,为不了解编程的读者提供了可以直接使用的软件,请移步这里阅读和使用 http://blog.csdn.net/jzj1993/article/details/44459983 本 ...

  7. ios 使用AVFoundation从视频中提取音频

    ios 使用AVFoundation从视频中提取音频 在导出音频文件时候,使用 m4a格式或者wav格式,总会遇到某些视频无法正常导出,使用caf(core audio format)则可以正常导出. ...

  8. 1、OPenGL ES - 简介、iOS中GLKit简单应用

    OPenGL ES -  简介.iOS中GLKit简单应用 一.OPenGL ES 1.简介: OpenGL ES 是以手持和嵌入式为目标的高级的3D图形应用程序编程接口(API),OpenGL ES ...

  9. iOS开发--手把手教你制作音乐播放器

    我个人之前有个想法,把平常用的小软件,闲暇之余自己都实现一个迷你版本,打造自己的app专属文件夹,比如闹钟.音乐播放器.视频播放器.电子书以及贪吃蛇之类的小游戏.我相信通过实现这些小程序,能够进一步熟 ...

最新文章

  1. Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) B. Verse Pattern 水题
  2. 实战 Prometheus 搭建监控系统
  3. (转载)IT未来发展五大趋势
  4. STM32开发 -- 状态机与状态切换逻辑
  5. Linux Redis 重启数据丢失解决方案,Linux重启后Redis数据丢失解决方
  6. 关系数据库基础:函数依赖知识笔记
  7. c# 笔记 数据类型转换 数组 函数
  8. Docke--利用 commit 理解构建镜像
  9. Redis的AOF持久化的实现
  10. 【推荐实践】图片主题模型在推荐系统的应用实践
  11. 【图像增强】python图像数据增强
  12. watson机器人_使您的聊天机器人看起来更加智能! Watson Assistant的隐藏功能。
  13. python简易版猜单词游戏_Python实现简单的猜单词小游戏
  14. 斐波那契堆的C++实现
  15. HTTP Basic Auth:使用和Postman 测试
  16. 【LeetCode LCP 3】机器人大冒险
  17. Python-10.1-面向对象
  18. 福建食用菌产业博览会盛大开幕 谋定中国农民丰收节交易会
  19. Js 下载文件流支持IE
  20. tomcat配置pid文件

热门文章

  1. 实用 —— PowerCLI (一)
  2. 主动找智能钥匙 PKE取代RKE是大势所趋
  3. 80 after generation to marry or not to marry that is a question
  4. 北京.net俱乐部博客园小组成立了
  5. sql server 服务器之间传递消息,SQL Server 2008 Service Broker教程 - 无法接收消息(transmission_status中的异常)...
  6. linux编译安装madam,linux 下 使用 mdadm 创建阵列
  7. 登录方式1:MySQL自带客户端
  8. Pod详解-资源配额
  9. Java连接Redis-Jedis简介
  10. 配置Swagger2