历时4个月,功夫不负有心人,终于算是完成了。
辛辛苦苦这么久,我也纠结要不要开源,会不会被某些人拿去删掉作者然后说自己写的,毕竟之前的文章就有人抄过。
再后来我想到,这个东西凭我一个人是写不出来的,我在网上看了很多博客,也在github
上看了很多优秀的项目,所以还是决定分享给大家。
首先要感谢 Tianscar
(https://github.com/Tianscar)这个大佬开源的音频解码器。
Swing
的GUI
编程- 非
Spring
框架中使用Mybatis-Plus
框架 H2
数据库- 发布订阅模式
- 策略模式
- 多线程技术,线程池技术,线程暂停与恢复
- 歌词展示
- 傅里叶变换,频谱显示
- 采用发布订阅模式,灵活解构
- 采用策略模式,减少冗余代码
- 采用
H2
数据库,非Spring模式,支持初始化数据库 - 支持所有主流格式
- 支持单个文件打开,文件夹导入
- 支持删除音乐
- 支持定位文件夹
- 歌曲列表展示,支持按照名称,歌手,专辑,创建时间排序
- 支持喜欢的音乐列表
- 支持定位当前播放的音乐
- 支持歌词展示
- 支持歌词不同步修正
- 支持频谱展示
- 支持元信息展示
- 支持元信息修改,包括封面,歌词,标题,作者,专辑,年份等信息。
下面放一张全家福
- 拖拽进度条时间不准确
- 不支持网络音乐播放
- 频谱有些单一
写的时候发现,Spring
真的把Java
程序员保护的太好了。没有Spring
的时候,你会发现各种奇怪的问题,又一次感受到了Spring
的伟大。
由于Java
的局限性,拉播放进度条有点问题。定位不准确。现在处理方式是拖拽后端位置除以总长度,计算百分比,然后跳过百分比的大小,这样肯定是不准确的。
一直有写个播放器的想法,主要是为了致敬千千静听,虽然写的有些简陋,不过也能听个响不是?
因为对Swing
其实不是很熟,很多东西也是各种查资料,总算写出来了。
所以本着开源的精神,分享给大家:遵循 BSD 2-Clause License
协议
Github:https://github.com/LerDer/wdplayer
如果对你有帮助,请帮忙点个star,谢谢啦。