Repository navigation
Releases: zet-wu/MusicBox
Releases · zet-wu/MusicBox
Release list
MusicBox-0.3.2
MusicBox fork v0.3.2
更新内容
- 重构了歌词模块,使用 AMLL core 歌词组件,全面支持 TTML 格式的高级功能,如翻译、注音、双人对唱等功能
- 支持在线获取和选择歌词源,当前支持AMLL、网易、QQ、酷狗四个在线源,支持YRC、KRC、QRC转为TTML逐字歌词,保留翻译、注音等属性
- 支持手动调节歌词时间轴
- 桌面歌词改为滚动歌词
- 修复了歌曲文件含有连续点号导致无法播放的问题
- 修复了歌单创建和删除时页面没有自动更新的问题
MusicBox-0.3.0
MusicBox fork v0.3.0
本版本基于上游尚未正式发布的 0.2.6 开发版本,并在此基础上对播放列表、歌单、收藏、音乐库、播放历史及媒体库页面进行了大幅重构和完善。
上游 0.2.6 的主要更新
上游仓库在 0.2.5 之后完成了较大规模的底层重构,主要包括:
- 将主进程及大量渲染进程代码从 JavaScript 迁移至 TypeScript。
- 重构主进程、IPC、渲染进程及插件系统的组织方式。
- 重新整理 Rust WASAPI 音频模块。
- 升级 Electron、TypeScript 及相关依赖。
- 补充项目架构、插件 API 和开发文档。
本 fork 的主要更新
播放列表系统
- 重构播放列表,使用显式且可编辑的歌曲顺序。
- 顺序播放和随机播放现在主要决定歌曲如何加入播放列表,不再持续打乱或重排已有列表。
- 支持在播放列表中拖动歌曲调整顺序。
- 改善当前播放歌曲、播放索引与列表状态之间的同步。
歌曲右键菜单与播放操作
- 扩展单选及多选歌曲的右键菜单。
- 支持单选和多选歌曲的“下一首播放”/“下N首播放”。
- 支持将多首歌曲批量加入歌单和播放列表。
- 重新设计歌单页面的播放操作,使整张歌单的播放、追加和随机播放行为更加清晰。
收藏功能
- 实装上游未正式实现的收藏功能。
- 收藏现在作为系统特殊歌单进行管理。
- 播放器中的心形按钮现已可正常收藏或取消收藏歌曲。
- 统一收藏、全部歌曲和普通歌单页面的列表样式及交互。
大型列表与封面性能
- 重构歌曲列表和封面加载流程。
- 对大型歌单及大型音乐库使用列表虚拟化,减少同时渲染的内容。
- 对封面加载进行限流和任务取消,切换页面后不再继续执行无用任务。
- 使用缓存管理和后台线程解析内嵌封面,降低页面卡顿。
- 修复异步封面任务覆盖当前页面内容的问题。
音乐库来源与文件导入
- 重构音乐库来源模型,区分文件夹来源和单文件来源。
- 重新设计从文件向音乐库及歌单添加歌曲的操作,支持批量添加音乐文件。
- 支持将文件夹绑定到歌单,绑定歌单可随文件夹扫描结果同步更新。
- 支持从文件夹直接创建绑定歌单。
- 每次扫描时识别并清理已经失效的文件夹或歌单绑定。
播放历史与统计
- 重新构建播放历史记录功能。
- 重做“最近播放”页面的数据来源和展示逻辑。
- 修复重复记录、歌曲识别错误和索引错乱问题。
- 更新统计页面使用的播放数据。
- 改善播放历史的持久化及旧数据迁移。
系统媒体会话
- 接入操作系统媒体会话。
- 支持通过键盘媒体键播放、暂停及切换歌曲。
- 播放状态可与系统媒体控制同步。
- Web Audio 模式下可在 Windows 媒体浮层中显示歌曲信息。
艺术家与专辑页面
- 重构原“星河”艺术家页面。
- 移除原页面中性能开销较大的展示方式。
- 艺术家和专辑页面现在采用统一的卡片和列表样式。
- 艺术家、专辑及其他歌曲集合使用统一的详情页。
- 增加列表视图、排序方式及专辑是否按艺术家分组设置。
歌单聚合页面
- 新增独立的歌单聚合页面。
- 歌单卡片样式与艺术家、专辑页面保持一致。
- 支持在聚合页面中播放、重命名、删除及管理歌单。
歌单封面管理
- 扩展歌单封面管理功能,改为统一的歌单封面快照存储。
- 支持从歌单内歌曲的封面中选择歌单封面。
- 支持自动设置或更新歌单封面,可在设置关闭。
- 修复无封面歌曲和无封面歌单的回退显示。
文件夹管理页面
- 新增音乐文件夹管理及浏览页面。
- 页面复用艺术家、专辑和歌单的统一视觉样式。
- 可以查看每个文件夹来源中的歌曲。
- 可以直接从文件夹创建歌单。
- 可以查看和管理文件夹已绑定的歌单。
稳定性修复
- 修复页面切换后搜索状态残留的问题。
- 取消已经失效的搜索和异步加载任务。
- 修复未知路由和页面状态未正确清理的问题。
- 修复启动阶段覆盖歌单缓存的问题。
- 修复收藏按钮、最近播放索引、封面回退等问题。
升级说明
本版本调整了播放列表、收藏、歌单成员、音乐库来源和播放历史等数据结构,并包含旧数据迁移逻辑。
升级前仍建议备份 MusicBox 用户数据目录。首次启动时,大型音乐库可能需要重新扫描或重建部分缓存。
插件系统和部分内部模块也经过了调整。依赖 MusicBox 内部实现的旧插件可能需要适配,使用正式 Extension API 的插件受影响较小。
感谢上游作者 asxez 创建 MusicBox,并完成 0.2.6 阶段的 TypeScript 和底层架构重构。