基于JavaFX实现的音乐播放器
前言
这个是本科四年的毕业设计,我个人自命题的一个音乐播放器的设计与实现,其实也存在一些功能还没完全开发完成,但粗略的答辩也就过去了,还让我拿了个优秀,好开心。界面UI是参考网易云UWP版本的,即使这样,实现还是要花费很多心思去实现的。我建议在Linux或者MacOS平台下运行(比较好看),Windows平台的界面我当时模仿UWP版本的窗口风格弄得不是很好,有一些问题。分享出来,希望对JavaFX感兴趣的同学可以作为参考,也可以私聊我讨论。
测试运行环境
配置项 | 客户端1配置 | 客户端2配置 | 客户端3配置 |
---|---|---|---|
硬件配置 | CPU:Intel i7 4790k 内存:16G | CPU:Intel i7 4790k 内存:16G | CPU:Intel i5双核 内存:8G |
软件配置 | Windows(1909)系统JVM(8u241) | Ubuntu18.04/20.04系统JVM(8u221) | MacOS操作系统 JVM(8u241) |
测试运行我测试过Windows、Ubuntu和MacOS的,MacOS存在某些在线歌曲无法播放,JavaFX跨平台支持不是很好,Ubuntu需要安装ffmpeg解码,不然无法播放mp3文件。
- Ubuntu系统执行命令安装ffmpeg:
sudo apt install ubuntu-restricted-extras ffmpeg
项目组成及功能
项目总共分为三个,分别为播放器客户端、资源管理客户端和服务器端。
- 播放器客户端:用户使用播放器管理播放音乐的客户端软件;
- 资源管理客户端:管理服务器端歌曲、歌手、专辑资源的客户端软件;
- 服务器端:为客户端提供在线资源和数据存储服务。
下面是项目所有源码:
项目 | Github链接 | 相关框架 |
---|---|---|
播放器客户端 | https://github.com/quanbisen/neteasemusicplayer | Spring、JavaFX |
资源管理客户端 | https://github.com/quanbisen/playermanager | Spring、JavaFX |
服务器端 | https://github.com/quanbisen/playerserver | SpringBoot、Mybatis |
1. 播放器客户端功能结构及实现
- 功能结构图
- 实现图
2. 资源管理客户端功能结构及实现
- 功能结构图

- 实现图
3. 服务器端接口约定及数据库E-R图设计
- Web服务器接口约定
类型 | 接口 | 参数类型 | 响应类型 |
---|---|---|---|
查询 | [query/{param}|queryAll|queryByName] | 字符串或空 | JSON字符串 |
新增 | insert | JSON字符串和字节 | 字符串“success”或“fail” |
删除 | delete/ | 整型 | 字符串“success”或“fail” |
更新 | update | JSON字符串和字节 | 字符串“success”或“fail” |
- 数据库E-R图
设计实现论文文档
设计实现的论文文档遵循软件工程的生命周期法,使用了结构化方法进行设计实现,有需求分析、总体设计、详细设计、部署和测试等过程。论文描述了整个设计实现的过程,需要的可以下载查看。