MFree——本地&网络开源音乐播放器
2016-07-24 本文已影响0人
阿飞咯
背景:
为了维护一个良性项目,虽然音乐播放器原理简单,但是要制作一个复杂的音乐播放器,却涉及到了各个方面的知识:
1.UI界面:界面是安卓开发最基本的,也是难点之一。
2.数据库
3.网络编程
4.多线程
...
更新日志:
v1.0 主要搭建整体框架和实现播放逻辑。
技术点:
0.整体架构采用MVP
1.ViewPager+Fragment+RecyclerView+Loader机制实现本地音乐的获取。(其中Fragment踩坑较多)。
2.Retrofit+OkHttp+Rxjava实现网络歌曲的获取(某度api见源码)。
3.aidl Service实现音乐播放逻辑(接口设计借鉴原生安卓播放器)。
目前效果图:








心得:
1.为了保存Fragment状态踩了很多坑,为了避免重复加载也做了很多精心的小设计,但是不免有很多BUG,慢慢去发现。
2.Service的设计,官方音乐播放器使用aidl设计,于是机智的我就拷贝了官方的aidl文件,模仿它进行设计的(感觉还是有很多欠缺,以后慢慢磨),以及简化调用而设计的utils。
计划:
1.完善Service(为了测试现只做了播放功能)、完成Service广播更新状态
2.封装下载器
3.UI(包括自定义View、动画等等)
每周更新(目前实习只有周末做)
github