iOS-纯代码编写本地音乐播放器AVAudioPlayer

背景:天天听着网易云音乐,想着哪天要是自己能做一个类似网易云音乐的播放器就好了(大三还没毕业)。在CocoaChina代码库里面逛了有些日子了,就干脆下载几个音乐播放器的demo来练练手。实践结果告诉我:一个完整的播放器确实要做很多功能,确实有些难度。那么就开始说说我做的本地音乐播放器吧。


个人觉得吧,无论做什么项目或工程,都要先架构好再写,不然真的会很凌乱地。以前吧,我总是拿着东西就写,从不管什么架构,什么分层的。如果逮着某个部分就写,写到最后你会发现,你的代码耦合性太强了,不容易分离。当另一个控制器或者View层或者Model层要用到当前数据,不容易传递。(传递当然是可以传递的,只是逻辑看起来很别扭)。我个人还是比较喜欢先分好层,再写代码。当然也有人喜欢全部写好,再把每个部分分离出来,归类为不同的层。我更喜欢前者。


好啦,开始说说我整个工程的架构吧:
  • 采用MVC的模式来管理项目,层管理控件,View层显示控件,Model层处理数据。
  • 歌词界面归为View层(视图内的要显示东西太多,分离出来),其余控件在主控制器初始化显示。
  • 自定义UITableViewCell来显示歌词,并且用算法按照播放进度来显示歌词的颜色。
  • 有一些算法处理可以归为Category分类或者自己建一个工具类。

再说说这个工程里面的控件结构位置的概述吧:

第一个界面:

  • 模糊的背景里面是一个UIImageView,采用了高斯(毛玻璃)效果。中间那个圆圈图片也是一个UIImageView,并且修改他的Layer变成圆形。不难看出,这两个UIImageView 的图片是一样的,其实是从当前MP3音乐里面提取出来的。
  • 上面歌名和歌手是用两个UILabel来显示,信息也是从当前MP3歌曲里面提取出来的。
  • 下面有一个UISlider来控制歌曲播放进度。
  • 还有两个UILabel分别来显示当前播放时间和歌曲总时长,歌曲里面提取出来的总时长是时间戳NSTimeInterval的单位,我们用算法格式化转发为我们熟知的时间格式。
  • 最下面自然是三个<

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值