前言

这个是本科四年的毕业设计,我个人自命题的一个音乐播放器的设计与实现,其实也存在一些功能还没完全开发完成,但粗略的答辩也就过去了,还让我拿了个优秀,好开心。界面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/{param} 整型 字符串“success”或“fail”
更新 update JSON字符串和字节 字符串“success”或“fail”
  • 数据库E-R图

设计实现论文文档

设计实现的论文文档遵循软件工程的生命周期法,使用了结构化方法进行设计实现,有需求分析、总体设计、详细设计、部署和测试等过程。论文描述了整个设计实现的过程,需要的可以下载查看。

最新文章

  1. salesforce 零基础学习(十七)Trigger用法
  2. [css]我要用css画幅画(一)
  3. CSS制作图片水平垂直居中
  4. Review Board——在线代码审查工具
  5. 项目积累——jQuery
  6. zoj 3329 One Person Game 概率DP
  7. [解决] [centOS] g++ 带 -static 参数编译时,报错 /usr/bin/ld: cannot find -lm
  8. Oracle10g/11g 在SUSE/RHEL上的安装与配置
  9. 关于driver_register做了些什么
  10. ubuntu 10.10配置NFS网络共享步骤
  11. GDAL1.11版本号对SHP文件索引加速測试
  12. c++设计成员变量可动态调整的动态类结构
  13. JDBC连接错误(Illegal mix of collations。。。)
  14. Javascript的RegExp对象(转载自网络)
  15. [APIO2014]
  16. P1140 相似基因 (dp)
  17. 【代码笔记】Web-CSS-CSS id和Class选择器
  18. 网页换肤,模块换肤,jQuery的Cookie插件使用(转)
  19. 关于EF中出现FOREIGNKEY约束可能会导致循环或多重级联路径的问题
  20. 【精】EOS智能合约:system系统合约源码分析

热门文章

  1. JavaScript:使用递归构建树型菜单
  2. Android 11 源码下载+编译教程
  3. 如何使用交易开拓者(TB)开发数字货币策略
  4. Oh my God, Swagger API文档竟然可以这样写?
  5. [日常摸鱼]bzoj2875[NOI2012]随机数生成器-矩阵快速幂
  6. Spring Boot 简单入门案例
  7. DirectX12的初始化
  8. mini-web框架-装饰器-总结2(5.3.2)
  9. js--数组的filter()过滤方法的使用
  10. vue封装API接口