Skip to content

asxez/MusicBox

Repository files navigation


MusicBox Logo

🎵 MusicBox

高颜值的本地音乐播放器

📦下载安装  |   🛠️开发指南  |   🔧为MusicBox安装(开发)插件  |   📌相关截图

Ask DeepWiki License Platform Electron Node


📖 项目简介

  • MusicBox是一款专注于本地音乐播放的桌面应用程序,采用现代化的技术栈和精美的用户界面设计。
  • 项目灵感来源于 YesPlayMusic 的设计美学。

✨ 特性

  • 💻️ 支持 Windows / macOS / Linux
  • ✅ 支持flac, mp3, wav, ogg, m4a, aac, wma等多种音乐格式
  • 🔧 强大的插件系统(允许在插件中实现任何功能,高权限)
  • 📔 支持在线获取歌曲封面和歌词
  • ⌨️ 支持自定义局内/全局快捷键
  • 🎈 浅色/深色主题切换
  • 🎼 支持均衡器
  • 📃 支持桌面显示歌词
  • 📔 支持识别内嵌封面和内嵌歌词
  • 👁️ 支持自由的页面显示开关
  • 💾 支持挂载 SMB/WebDAV 等网络磁盘
  • 🖋️ 支持编辑歌曲元数据
  • ▶️ 支持无间隙播放,为连续的专辑歌曲提供更好的播放体验
  • 🛠️ 更多特性开发中

📔 TODOS

✅已完成,❌未完成,🔄部分完成,❓待定

  • ✅ 局内/全局快捷键
  • 🔄 侧边导航栏页面
  • ✅ 音乐变速不变调 (此功能在speed-feat分支中已实现,但是由于内存占用问题暂不合并到主分支)
  • ✅ 均衡器
  • 🔄 进一步完善设置功能
  • ✅ 修复音乐文件元数据识别乱码
  • ✅ 窗口管理
  • ✅ 歌曲列表添加封面显示
  • ✅ SMB/WebDAV 等网络磁盘的挂载
  • ✅ 桌面歌词显示
  • ✅ 内嵌歌词识别
  • ✅ 自定义音乐库歌曲信息
  • ✅ 自定义歌单
  • ✅ 无间隙播放
  • ✅ 插件系统
  • ✅ MusicBox 实时状态接口
  • ❌ 歌词逐字
  • ❌ 修复播放列表存在的问题
  • ❌ 歌词样式调整
  • 🔄 更多其他特性

📦 安装

预编译版本下载

前往 Releases 页面下载适合你系统的安装包。

从源码构建

环境要求

  • Node.js >= 20.0.0
  • python >= 3.8

从源码构建 MusicBox,请按照以下步骤操作:

1. 克隆仓库

git clone https://github.com/asxez/MusicBox.git
cd MusicBox

2. 安装依赖

# 安装主进程依赖
npm install

# 安装渲染进程依赖并构建
cd src/renderer
npm install
npm run build
cd ../..

3. 开发模式运行

npm run dev:main

4. 构建应用

# 构建当前平台版本
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 中提交你开发的插件,我会在此链接你的仓库😋

MusicBox 插件开发文档

可用插件列表

Q: 如何使用插件?

A:设置中打开插件管理,导入插件即可,目前只支持单个的 JS 文件。

注意:插件间可能存在不兼容问题

🤝 贡献

我们欢迎所有形式的贡献!无论是报告 bug、提出功能建议、提交代码改进,或者说提交你开发的插件!

📄 许可证

本项目基于 MIT License 开源协议。

🙏 致谢

📌 相关截图

MusicBox 应用截图 MusicBox 应用截图 MusicBox 应用截图 MusicBox 应用截图 MusicBox 应用截图 MusicBox 应用截图


如果你喜欢这个项目,请给它一个 ⭐️