前言:读研究生之前,老板让学IOS,老老实实看了一个学期的IOS(在这里强烈安利一下腾讯课堂的小码哥IOS视频,基本刚开始只需要10块买第一部,后面的就可以用可视币来兑换了,质量还不错,能学到很多东西,看三部基本IOS就能入门了),结果开学提前两个月被叫去干活,一开会,说IOS暂时没项目,让我学安卓,我。。。好了好了,看了几天郭霖大神的《第一行代码》,然后跟着做了最后的一个项目:酷欧天气。就想着自己做一个东西,于是就做了一个模仿网易云音乐的本地音乐播放器。具体界面如下:

实现的主要功能有:本地音乐的扫描显示、音乐的播放、音乐播放顺序的设置(随机、顺序,单曲循环等)、通知栏显示歌曲播放信息、通过通知栏控制音乐的播放、仿网易云音乐中间胶片旋转和背景虚化效果等。

用到的主要知识有:

1、服务的知识:要想在后台播放音乐,就必须用到服务,具体就是在服务中,让MediaPlayer播放,然后通知Binder接口,在活动中调用服务中的函数控制音乐的播放。这个知识在《第一行代码》中说的很清楚了,就不细说了。

2、MediaPlayer:安卓提供的控制音乐音乐播放的,挺简单的,网上有很多教程。

3、内容提供器:需要用内容提供器获得本地音乐的各种信息,包括歌曲名称,作者,路径,专辑图片等。

4、广播:在音乐播放完的时候,需要利用广播通知活动,控制播放下一首歌,此外,在用通知栏控制音乐播放的时候,也会用到广播。我这里是通过动态注册广播的方式实现的,因为广播类是定义在活动中的内部类,要在内部类中访问一些活动类中的变量。

5、通知:这个是真花费了很多功夫才学会的,因为想要通过通知控制音乐的播放,就要自定义通知栏,要用到remoteview,然后想要监听通知中按钮的点击事件,只能让remoteview发送广播,然后让活动监听控制音乐的播放。我这里是在监听音乐播放完成后广播中一起处理的,一定要注意,在注册广播的时候,要addAction,然后在remoteview设置Intent时,要设置Intent的action,这样才能监听到。

6、实现网易云音乐类似的转盘旋转和背景虚化功能,这个是网上搜集到的。贴个网址:https://blog.csdn.net/jasper_success/article/details/78850679。这个做的很好,但是这个操作很耗时,最好是将这部分内容放到子线程中去执行。

7、多线程:在6中说到,专辑图片的虚化和圆化操作比较耗时,最好是放到子线程中进行,但是问题又来了,在子线程中操作的时候,有可能你图片还没生成,就会切到下一曲了,这样在不同专辑图片过度的时候,就会有很卡的感觉。我这里采用了一种折中的办法,在用户按下下一首,上一首等切歌按键的时候,先让中间胶片旋转暂停,然后等图片在子线程中完全生成了,设置后背景和胶片图片了,再让胶片继续旋转,这样就能很大程度上缓解卡的问题了。

大概用到的知识就是这些了吧,具体的实现细节在源码中详细看吧,源码下载地址:

https://download.csdn.net/download/qq_31709249/10568819

安卓仿网易云界面的本地音乐播放器的实现相关推荐

  1. 计算机毕业设计Python+uniapp+安卓仿网易云音乐客户端APP(WEB+APP+LW)

    计算机毕业设计Python+uniapp+安卓仿网易云音乐客户端APP(WEB+APP+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区 ...

  2. 一款简单的本地音乐播放器,界面美观、包括主题切换、歌单管理等等

    MeetMusic 项目地址:lijunyandev/MeetMusic  简介:一款简单的本地音乐播放器,界面美观.包括主题切换.歌单管理等等 音乐-播放器-主题切换- App 效果图        ...

  3. 炫 音乐可视化 html5 在线,HTML5打造的炫酷本地音乐播放器-喵喵Player

    将之前捣腾的音乐频谱效果加上一个播放列表就成了现在的喵喵播放器(Meow meow Player,额知道这名字很二很装萌~),全HTML5打造的网页程序,可本地运行也可以挂服务器上用. 在线Demo及 ...

  4. python 本地音乐播放器制作过程

    制作这个播放器的目的是为了将下载下来的mp3文件进行随机或是顺序的播放.选择需要播放的音乐的路径,选择播放方式,经过测试可以完美的播放本地音乐. [阅读全文] 在开始之前介绍一个免费下载mp3音乐的网 ...

  5. Achshar Player:把Chrome浏览器当作本地音乐播放器使用

    Chrome是一款优秀的网页浏览器,你有没有想过,它除了能够用来浏览网页之外,还能用来干什么?Achshar Player这个扩展的作者会告诉你,谷歌浏览器还可以完全作为一个音乐播放器使用!拿chro ...

  6. 安卓实训项目:基于储存卡音乐播放器实训报告5.0

    安卓实训项目:基于储存卡音乐播放器实训报告5.0 (一)功能要求 在基于存储卡音乐播放器V0.4基础上,作如下修改: 1.创建应用程序常量接口保存广播频道常量 2.在音乐播放器应用程序类里添加两个属性 ...

  7. 我的音乐(Musicoco)- 本地音乐播放器开发总结

    开源一个功能相对齐全的本地音乐播放器 简述 从五月末就开始利用空余时间开发这款 app ,不知不觉三个月过去了. App 名称:我的音乐,我给取了个别名:Musicoco. Android 手机本地音 ...

  8. 利用PyQt5制作本地音乐播放器

    介绍 本文是对之前的音乐播放器的一些改进和功能实现.只写了有变化的部分,具体部分请看上一篇博客. [利用PyQt5和QSS制作本地音乐播放器(初稿)](https://blog.csdn.net/we ...

  9. 基于 Qt5 ( C++ ) 开发的一个小巧精美的本地音乐播放器

    LightMusicPlayer --南京大学2019秋季学期 "高级程序设计" 课程设计三 基于Qt5开发的一个小巧精美的本地音乐播放器 代码注释详细,适合作为一个用于入门的Qt ...

最新文章

  1. FMDB使用SQLite事务Save Point
  2. 【jQuery Demo】图片瀑布流实现
  3. 小县城也被互联网+撞了一下腰
  4. [转]opensuse vim 的语法高亮
  5. STM32M CUBE实现printf打印调试信息以及实现单字节接收
  6. burp intruder爆破出现 Payload set 1: Invalid number settings的解决办法
  7. 序列生成_Excel中最快速地生成数字序列的方法
  8. .net core 1.1 mysql_Asp.net Core 1.1 升级后操作mysql出错的解决办法|chu
  9. 2018-12-13丛晓强作业
  10. ArcGIS的基本使用
  11. wilcoxon符号秩检验matlab,符号检验和wilcoxon符号秩检验的区别
  12. C++ 读取TXT文件
  13. MATLAB命令窗口与帮助系统
  14. openstack controller ha测试环境搭建记录(二)——配置corosync和pacemaker
  15. 面试开课吧合并区间算法
  16. arXiv镜像加载慢的解决办法
  17. ES 中时间日期类型 “yyyy-MM-dd HHmmss” 的完全避坑指南
  18. Java工程师如何做好职业规划和成长路线?
  19. PCI设备初始化(一)
  20. JavaScript常用事件及其区别

热门文章

  1. EXCEL中设置后面单元格的数据由前面单元格的数据带出
  2. python语言属于哪一种语言,python语言特点是什么
  3. ElasticSearch immense term错误
  4. 香港Paypal申请指南
  5. 安装软件时出现 win10 defender smartscreen
  6. Python开发-Django快速入门
  7. 计算机 夏令营 经验,夏令营经验总结(中国石油大学克校区计算机类专业)
  8. 2022-2028全球与中国氧化铝抛光市场现状及未来发展趋势
  9. 论文阅读——《Online Learning of Rested and Restless Bandits》
  10. 掌控靶场 尤里复仇回归sql-注入绕过防护getshell