/******************       iOS开发:音乐播放器     *****************/

要求:给button一个触发事件,点击一下播放歌曲,显示暂停提示;

再点击一下暂停歌曲,显示播放字体;

封装一个music类:

(1).引入AVFoundation框架

#import<AVFoundation/AVFoundation.h>

(2).创建播放歌曲的类的对象以及方法:

@property(nonatomic, strong)AVPlayer *player;

@property(nonatomic, retain)NSString *currentURL; //url:网络接口

@property(nonatomic,assign)NSInteger flag; //标签

//单例,只有这个工程关闭时,才退出歌曲播放

+ (Music *)shareInstance;

//播放歌曲,传进来一个URL

- (void)playMusicWith:(NSString *)urlString;

//暂停歌曲

- (void)pauseMusic;

(3).实现方法:

+ (Music *)shareInstance{

//只走一次

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

music = [[Music alloc]init];

});

return music;

}

- (void)playMusicWith:(NSString *)urlString{

if ([_currentURL isEqualToString:urlString]) {

//通过flag触发播放还是暂停:

if (_flag == 1) {

[_player play];

_flag = 0;

}else{

[_player pause];

_flag = 1;

}else{  //换歌

//记录当前歌曲URL

_currentURL = urlString;

//先暂停前一首歌

[_player pause];

//得到新的URL

_player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:urlString]];

//播放新歌

[_player play];

}

}

(4).在viewController中,

假设给button一个触发事件,用来控制播放、暂停歌曲

- (void)buttonAction{

//用tag值来改变setTitle (初始时刻button = 1000)

if (_button.tag == 1000) {

NSString *urlString = @"http://fdfs.xmcdn.com/group14/M08/70/3F/wKgDZFX1m2_zB1prACBgVqJhyOA138.mp3";

[[Music shareInstance] playMusicWith:urlString];

[_button setTitle:@"暂停" forState: UIControlStateNormal];

_button.tag = 1001;

}else{

NSString *urlString = @"http://fdfs.xmcdn.com/group14/M08/70/3F/wKgDZFX1m2_zB1prACBgVqJhyOA138.mp3";

[[Music shareInstance] playMusicWith:urlString];

[_button setTitle:@"播放" forState:UIControlStateNormal];

_button.tag = 1000;

}

}

iOS开发:音乐播放器相关推荐

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

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

  2. 【网络收录】基于51单片机开发音乐播放器

    [网络收录]基于51单片机开发音乐播放器 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Thu, 22 May 2014 18:14:00 +0800 特别声明:本资料来源 ...

  3. linux 基于qt开发的音乐,Linux下用QT开发音乐播放器.pdf

    嵌入式课程设计报告 - Linux 在 下开发音乐播放器 李荣贵 141578 一.概述 按课程要求,在Linux环境下开发了一款简易的音乐播放器软件, Mini 名为 " 音乐播放器&qu ...

  4. ios开发---音乐播放器之怎么获取音乐列表

    博主刚学ios开发不久,最近想要自己写一个音乐播放器.结果昨天关于怎么获取音乐列表的问题在网上找了好久,今天想要把我昨天找到的资料和学到的东西记录下来. 方法一: 这个方法是通过获取到沙盒路径,来得到 ...

  5. Xamarin.Android开发音乐播放器

    最近.Net开源着实让C#火了一把,好久就听说Mono for Android一直没静下心来看,上周末找来看看,确实不错,前台界面axml编写跟Java安卓开发毫无区别,后台用C#其实很多window ...

  6. startService和onBinderService混合开发音乐播放器

    首先你你需要知道MediaPlayer这个类的一些方法: int getDuration():获取流媒体的总播放时长,单位是毫秒. int getCurrentPosition():获取当前流媒体的播 ...

  7. 2020 零基础 Vue综合应用 教开发音乐播放器—悦听(激发编程乐趣)【整理+源码】

    文章目录 1.引言 2.音乐播放器完整版效果图如下: 3.接口引用 4.示例代码 5.结束语 点击进入Vue❤学习专栏~ 1.引言 这是Vue学习的综合应用篇,教你开发一个音乐播放器,能听歌,能看热门 ...

  8. python开发音乐播放器教程_python开发简易版在线音乐播放器示例代码

    在线音乐播放器,使用python的Tkinter库做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过urllib.urlopen模块打开网址,使用Json模块进行数 ...

  9. python开发音乐播放器教程,Python挑翻音乐网,GUI实现音乐播放器,无敌Pythoner炼成记!...

    今天几篇博文都是些Python纯干货,有难度大的,也有难度比较低的适合新手的.但无一列外,就是它们都会有源码+视频教程二合一供大家学习.这样的文章有个好处,本人的文章多次遭其它人copy到其它网站,这 ...

  10. Android开发----音乐播放器(界面设计)

    转眼也沦为"大四狗"的行列当中去,本来打算在暑假的时候找一个实习,结果学校临时安排了"暑期实训" 原本计划好的安排全部被打乱了,哎~~~也只能跟着学校的脚步&q ...

最新文章

  1. 0058-简单的阶乘
  2. Activity中与ListActivity中使用listview区别
  3. openlayer右键菜单_使用OpenLayers3 添加地图鼠标右键菜单
  4. Java语言程序设计(基础篇) 第十章 面向对象思考
  5. MySQL中索引与视图的用法与区别详解
  6. Python入门之中文乱码
  7. 基于.NetCore3.1系列 —— 日志记录之日志核心要素揭秘
  8. Java高级面试题!java编程思想怎么学
  9. 递归判断一个数是否递增
  10. Inception Net V1总结
  11. 如何查电脑ip地址_摄像机地址不对连不上网?教你快速更改IP地址
  12. GitHub中watch star fork三个按钮干什么用的?
  13. 深入浅出Docker(六):像谷歌一样部署你的应用
  14. 有哪些函数可以反截图、_视频微课:征服反三角函数——反三角函数核心思想与方法——“1个概念”、“2类关系”、“3个层次”...
  15. 使用boost中的线程池
  16. hmcl手机版_hmcl启动器手机版下载-hmcl启动器官方正版下载v3.3.172-1y2y游戏
  17. InstallShield安装与部署
  18. 一次贴近实战的CTF比赛(cookie欺骗、php函数、Tomcat漏洞、注入、逆向等)
  19. deeping操作系统修改已挂载卷名称
  20. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第四章

热门文章

  1. 非全也要卷?复旦大学软件非全很多高分
  2. Django(10)-模板层的变量和标签
  3. BPDU保护与边缘端口、RLDP防环
  4. Calendar计算两个日期之间的天数和周数
  5. case class 和 class的区别
  6. React Reflux
  7. 文本分类(text classification)
  8. 服务注册Service Registration
  9. 洛谷P5266 【深基17.例6】学籍管理
  10. 亚马逊 广告接口对接 amazon advertising