Skip to content

LerDer/wdplayer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

基于 Java Swing 开发的音乐播放器

历时4个月,功夫不负有心人,终于算是完成了。

辛辛苦苦这么久,我也纠结要不要开源,会不会被某些人拿去删掉作者然后说自己写的,毕竟之前的文章就有人抄过。

再后来我想到,这个东西凭我一个人是写不出来的,我在网上看了很多博客,也在github上看了很多优秀的项目,所以还是决定分享给大家。

首先要感谢 Tianscarhttps://github.com/Tianscar)这个大佬开源的音频解码器。

主要技术包括

  1. SwingGUI编程
  2. Spring框架中使用Mybatis-Plus框架
  3. H2数据库
  4. 发布订阅模式
  5. 策略模式
  6. 多线程技术,线程池技术,线程暂停与恢复
  7. 歌词展示
  8. 傅里叶变换,频谱显示

特点:

  1. 采用发布订阅模式,灵活解构
  2. 采用策略模式,减少冗余代码
  3. 采用H2数据库,非Spring模式,支持初始化数据库
  4. 支持所有主流格式
  5. 支持单个文件打开,文件夹导入
  6. 支持删除音乐
  7. 支持定位文件夹
  8. 歌曲列表展示,支持按照名称,歌手,专辑,创建时间排序
  9. 支持喜欢的音乐列表
  10. 支持定位当前播放的音乐
  11. 支持歌词展示
  12. 支持歌词不同步修正
  13. 支持频谱展示
  14. 支持元信息展示
  15. 支持元信息修改,包括封面,歌词,标题,作者,专辑,年份等信息。

全家福

下面放一张全家福

image-20241123234903050

image-20241123235052699

image-20241123235919881

待解决问题

  1. 拖拽进度条时间不准确
  2. 不支持网络音乐播放
  3. 频谱有些单一

总结

写的时候发现,Spring真的把Java程序员保护的太好了。没有Spring的时候,你会发现各种奇怪的问题,又一次感受到了Spring的伟大。

由于Java的局限性,拉播放进度条有点问题。定位不准确。现在处理方式是拖拽后端位置除以总长度,计算百分比,然后跳过百分比的大小,这样肯定是不准确的。

一直有写个播放器的想法,主要是为了致敬千千静听,虽然写的有些简陋,不过也能听个响不是?

因为对Swing其实不是很熟,很多东西也是各种查资料,总算写出来了。

所以本着开源的精神,分享给大家:遵循 BSD 2-Clause License协议

Github:https://github.com/LerDer/wdplayer

如果对你有帮助,请帮忙点个star,谢谢啦。

About

基于Swing的Java音乐播放器

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages