# Javafx音乐播放器 **Repository Path**: moonjer/javafx-music-player ## Basic Information - **Project Name**: Javafx音乐播放器 - **Description**: 以学习为目的,仿网易云界面开发的java版的音乐播放器 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 43 - **Created**: 2020-12-03 - **Last Updated**: 2022-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Javafx音乐播放器 #### 介绍 这是款由纯java语言开发的在线音乐播放器,当然也支持播放本地的音乐,在本地音乐模块主要采用目前java最主流的音频标记库Jaudiotagger,可解析MP3文件头信息,比如提取内嵌到音频文件内的音乐封面,也可以将音乐封面写入到音频文件内,支持的音频文件主要为MP3,当然也支持wav,包括嵌入和链接图像支持。可读取音频文件头信息里的歌曲名,专辑、歌手名等元信息。在线模块由爬虫技术完成,主要依赖的是jsoup库,通过对网易云api接口发送请求后解析json数据拿到歌曲元信息再进行解析播放,解析json数据依赖阿里巴巴开发的fastjson库。javafx 第三方ui库jfoenix,toasterfx。其余功能:歌词滚动特效,歌词同步,最小化精简模式,桌面歌词,切换歌单,下载音乐,最小化系统托盘,少量Material Design风格(依赖jfoenix完成)等,特点:较少的内存消耗,大量的对象包括监听器都复用,只要不是非常非常频繁切歌换歌单,内存稳定在200mb、按需加载资源,用完立即释放资源,大型对象不存,压缩大型图片以减少内存消耗、ui延迟加载,超大资源加载都采用线程加载。 #### 软件架构 (Jdk15.0.1)or Jdk 1.8_201(需要更换成jfoenix8.0.8版本) #### 使用说明 1. 发现音乐的歌单是随机获取的,可以点击发现音乐栏右边的按钮更新发现音乐栏的内容,这个操作会发送一条https请求。 ![主界面](https://images.gitee.com/uploads/images/2020/1126/155548_dfb0c815_4822721.png "1.png") 2. 歌单列表可以是发现音乐栏里的一个,也可以是本地音乐,还可以是搜索结果后的,如果要加载本地音乐,点击本地音乐栏右边的文件夹按钮,打开本地音乐文件夹,一般这个文件夹都是相对于程序所在路径,在LocalMusic/Muisc文件夹内放音乐文件重新点击本地音乐栏就能加载本地音乐,如果需要歌词,请在LocalMusic/Lrc文件夹下放.lrc文件,注意,下载当前音乐会把音乐文件下载到LocalMusic文件夹内,lrc和音乐文件会放到对应的文件夹。 ![歌单列表](https://images.gitee.com/uploads/images/2020/1126/155655_544ddc0a_4822721.png "2.png") 3. 歌词是同步的,支持桌面歌词,让你在写代码听音乐的时候也能看到歌词。精简模式下可方便切换歌曲,播放暂停歌曲和调出or隐藏桌面歌词 ![歌词同步](https://images.gitee.com/uploads/images/2020/1126/155817_273849d3_4822721.png "3.png") 4. 其他 ![关于我](https://images.gitee.com/uploads/images/2020/1126/160258_818f18df_4822721.png "5.png") ![精简模式](https://images.gitee.com/uploads/images/2020/1126/160038_a0074453_4822721.png "4.png") #### 说明: 本项目以学习为目的,不做任何商用。