毕业设计Android开源音乐播放器仿千千静听支持歌词同步

毕业设计做的项目答辩已结束,现发出来与大家分享。

毕设背景:千千静听(后被百度收购)老牌PC音乐播放器,本次希望将经典功能迁移至安卓端,实现安卓本地音乐播放YYDS。

特色:

频谱展示(发现某Q音乐、某云音乐均无此功能),于是想整个安卓端出来,定义一些需要的功能。

MV展示:聚合某云、某Q,B站等主流站点,使用WebView。

开发环境:Android Studio 64位

jdk:11

compileSdk 32

minSdk 25

targetSdk 32

Gradle版本: gradle-7.2-bin.zip

简介:

扫描本地音乐,过滤flac,mp3有效文件;

播放本地音乐,实现播放、暂停、上一首、下一首;

歌词显示,自动匹配音乐文件同目录的歌词文件;

特色:仿千千静听UI频谱功能,已实现了基础功能。 更炫彩的音频、DSP均衡器需要UI设计,想搞但实在是没时间搞。

项目组成介绍

src:代码

drable:图标icon素材

layout:布局文件

reset:打包到apk的音乐文件,目标手机无音乐时可用作测试播放。

更新说明:

安卓音乐播放器仿千千静听支持歌词同步

【V2.0】

Cursor扫描本地音频文件,过滤mp3,flac格式 MusicControl实现基础音乐播放 最小化、切换Fragment后仍可播放 缺点:切换Fragment不能及时释放资源

【V3.0】

#PagerView实现歌曲列表、歌词显示

#LrcView:歌词视图

https://github.com/wangchenyan/lrcview 同目录lrc文件歌词同步

【V4.0】

#Service 音乐后台播放、控制

#外来电话、声音,捕捉焦点并暂停播放

#检测播放结束,自动下一曲

#MV,通过WebView实现 #歌手列表, GridView实现

#通知栏显示:Notification+自定义Remoteview实现。

坑点:通知栏,需要格外注意安卓API 8.0以上需要声明NotificationChannel才会显示,不然找原因会让你找的怀疑人生。

【待开发功能】

专辑旋转封面,仿网易云碟片

圆角图片处理

音乐控制改为后台方式

Service

音频焦点实现外接电话等自动停止播放

使用系统服务AudioManger

按歌手,按专辑分类 Cursor过滤 HashSet遍历list存储专辑、歌手信息实现去重

歌词匹配

优先匹配本地歌词,找不到则搜索网络歌词 歌词API:歌词迷,网易云 http/json获取解析

MV显示

暂时通过

千千静听其他功能打开指定音乐文件音效均衡DSP换肤

音乐文件信息修改:专辑封面、歌手、风格等信息

歌单自定义

创建歌单、增加歌曲到歌单

通知栏音乐控件 可能不同安卓版本、手机厂家小米欧珀显示不同

局域网聊天模式 同一wlan下识别在线人数,发送/接收聊天信息 显示每个人正在听的歌曲,如xx在听:后海

【待优化问题】

不同终端厂家版本、分辨率适配。

【难点问题记录】

Fragment跳转后原内容仍显示,只能改为PagerView实现左右滑动切换 Fragment通过底下Tab切换后闪退,问题是该Fragment的 销毁函数一些释放引起。 (难点)

Fragment绑定Service未实现,百度查了一下应该是不可以。改为Activity与Service交互。这个问题折腾了好久。 利用static静态变量实现Activity与Fragment之间传递参数(继承各种监听事件,从而传递List)实现控制上一曲、下一曲。

首先activity绑定service,初始化service的静态mediaplayer 然后fragment修改mediaplayer上一曲、下一曲状态

参考:

https://blog.csdn.net/weixin_34220834/article/details/88030672

通知栏不显示问题:Notifications(已解决)

还没找到原因,怀疑是安卓8以上参数问题

最终原因:测试机是安卓11,Channel未声明引起。

参考:

网易云音乐安卓版,千千静听PC版

Service教程:

https://www.cnblogs.com/yanglh6-jyx/p/Android_Service_MediaPlayer.html

项目截图


获取代码方式:

关注公众号:腾里精选 右下角音乐播放器源码获取

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容