高颜值的本地音乐播放器
📦下载安装 |
🛠️开发指南 |
🔧为MusicBox安装(开发)插件 |
📌相关截图
- MusicBox是一款专注于本地音乐播放的桌面应用程序,采用现代化的技术栈和精美的用户界面设计。
- 项目灵感来源于 YesPlayMusic 的设计美学。
- 💻️ 支持 Windows / macOS / Linux
- ✅ 支持flac, mp3, wav, ogg, m4a, aac, wma等多种音乐格式
- 🔧 强大的插件系统(允许在插件中实现任何功能,高权限)
- 📔 支持在线获取歌曲封面和歌词
- ⌨️ 支持自定义局内/全局快捷键
- 🎈 浅色/深色主题切换
- 🎼 支持均衡器
- 📃 支持桌面显示歌词
- 📔 支持识别内嵌封面和内嵌歌词
- 👁️ 支持自由的页面显示开关
- 💾 支持挂载 SMB/WebDAV 等网络磁盘
- 🖋️ 支持编辑歌曲元数据
▶️ 支持无间隙播放,为连续的专辑歌曲提供更好的播放体验- 🛠️ 更多特性开发中
✅已完成,❌未完成,🔄部分完成,❓待定
- ✅ 局内/全局快捷键
- 🔄 侧边导航栏页面
- ✅ 音乐变速不变调 (此功能在speed-feat分支中已实现,但是由于内存占用问题暂不合并到主分支)
- ✅ 均衡器
- 🔄 进一步完善设置功能
- ✅ 修复音乐文件元数据识别乱码
- ✅ 窗口管理
- ✅ 歌曲列表添加封面显示
- ✅ SMB/WebDAV 等网络磁盘的挂载
- ✅ 桌面歌词显示
- ✅ 内嵌歌词识别
- ✅ 自定义音乐库歌曲信息
- ✅ 自定义歌单
- ✅ 无间隙播放
- ✅ 插件系统
- ✅ MusicBox 实时状态接口
- ❌ 歌词逐字
- ❌ 修复播放列表存在的问题
- ❌ 歌词样式调整
- 🔄 更多其他特性
前往 Releases 页面下载适合你系统的安装包。
- Node.js >= 20.0.0
- python >= 3.8
从源码构建 MusicBox,请按照以下步骤操作:
git clone https://github.com/asxez/MusicBox.git
cd MusicBox
# 安装主进程依赖
npm install
# 安装渲染进程依赖并构建
cd src/renderer
npm install
npm run build
cd ../..
npm run dev:main
# 构建当前平台版本
npm run build
MusicBox/
├── src/
│ ├── main/ # 主进程代码
│ │ ├── main.js # 主进程入口
│ │ ├── preload.js # 预加载脚本
│ │ └── library-cache-manager.js # 音乐库缓存管理
│ └── renderer/ # 渲染进程代码
│ ├── src/ # 源代码
│ │ ├── js/ # JavaScript 源码
│ │ │ ├── components/ # UI 组件
│ │ │ │ └── ...
│ │ │ ├── api.js # API 接口层
│ │ │ ├── app.js # 应用主类
│ │ │ ├── cache-manager.js # localStorage缓存管理
│ │ │ ├── desktop-lyrics.js # 桌面歌词管理
│ │ │ ├── embedded-lyrics-manager.js # 内嵌歌词管理
│ │ │ ├── local-cover-manager.js # 本地封面文件管理
│ │ │ ├── local-lyrics-manager.js # 本地歌词文件管理
│ │ │ ├── md5.js # md5
│ │ │ ├── shortcut-config.js # 快捷键配置
│ │ │ ├── shortcut-recorder.js # 快捷键录制器
│ │ │ ├── utils.js # 工具方法
│ │ │ └── web-audio-engine.js # 音频引擎
│ │ ├── styles/ # SCSS 样式源码
│ │ │ └── main.scss # 主样式文件
│ │ └── assets/ # 源资源文件
│ └── scripts/ # 构建脚本
├── build/ # 构建的logo
├── docs/ # 文档和图片
├── dist/ # 构建输出目录
├── electron-builder.yml # 构建配置
├── package.json # 项目配置
└── README.md # 项目说明
可在 issue 中提交你开发的插件,我会在此链接你的仓库😋
Q: 如何使用插件?
A:设置中打开插件管理,导入插件即可,目前只支持单个的 JS 文件。
注意:插件间可能存在不兼容问题
- 主题切换器-示例插件 描述:提供多种预设主题,支持实时切换
- MusicBox实时状态接口 描述:提供 HTTP 接口获取 MusicBox 实时状态信息
- 背景图修改器 描述:可修改应用的背景图片,支持单张图片和文件夹
我们欢迎所有形式的贡献!无论是报告 bug、提出功能建议、提交代码改进,或者说提交你开发的插件!
本项目基于 MIT License 开源协议。
- YesPlayMusic - 设计灵感来源
- Electron - 跨平台桌面应用框架
- LrcApi - 提供相关接口
- music-metadata - 音频元数据解析
- 所有为项目做出贡献的开发者们
如果你喜欢这个项目,请给它一个 ⭐️