Musician2.0:重大更新
仓库: aaaaa114514-1/Musician2.0: A totally upgrade from musician!
在项目开工时隔一年之后,我终于看不下去 Musician 的单文件代码了,于是直接新建文件夹,重构代码走起!经过了近1个月的代码工作(中间经历了一个极度繁忙的期中周),Musician 2.0 终于正式上线了!
Musician 2.0 几乎沿用了上个版本的所有特性,并增加了不少新功能。毕竟我自己几乎每天都在用 Musician 来听歌,所以我对用户需求相对了解,也因此有了这个版本的全新功能和优化:
重构代码为多文件
1 | musician_project/ |
支持原来指令基础上,增加简化连写命令
play -mMode:play -m s: 切换到单曲循环并开始play -m c: 切换到列表循环并开始play -m r: 切换到随机播放并开始
play -vVolume:play -v 50: 播放的同时将音量设为 50%
play -tTimelimit:play -t 60: 播放的同时设置 60 分钟后自动停止
<Command> -hHelp:timelimit -h: 展示指令timelimit的用法
- 非法的连写命令将被指出
重构设置功能
- 重构
savedata.txt文件为settings.json文件 - 增加
set语句,支持应用内展示配置、修改配置(带合法性校验)
增加存储常用指令功能
- 增加
common_commands.json文件,存储常用指令 - 常用指令可以在打开应用后直接通过上/下键直接选择
- 增加
common语句,支持应用内查看、增删常用指令
增加 timelimit 播放到固定时间功能
重构了
timelimit处理代码增加支持
timelimit 14:15或timelimit 23:59:59的功能,自动播放直到下一次到达指定的时刻
增加歌曲 Tag 功能,重构存储逻辑
增加tags.json存储每首歌的tag
替代了原本的 Lis 目录逻辑,而是使用指定tag来播放音乐
标签必须是由大小写敏感的字母、数字(可以没有)、下划线(可以没有)组成的,不能纯数字
tag标签tag列出所有标签和标签下的曲目数量tag -l列出所有标签和标签下的曲目tag test列出标签test下的所有曲目tag -a test 1-4 6把当前目录下的第1-4、6首曲子打上标签testtag -d test删除标签test,洗脱所有曲目的这个标签tag -d test 2-3 7把带test标签的低2-3、7首曲子洗脱test标签
play新增内容play test播放test中的曲目(这里的test可以按照任意顺序传入参数)
showlist新增内容showlist test列出标签test下的所有曲目
save语法重构save把savelist中的歌曲保存到曲库目录save test1 test2把savelist中的歌曲保存到曲库目录,并把这些歌曲统一打上test1test2标签
使用安装包安装
- 使用 Inno Setup 安装包,自动处理了安装路径问题
- 分为
BGM和Musician两个路径,允许用户独立编辑安装位置 - 自动配置 settings.json 中的部分路径
目前已经发布了 Musician 2.0.0 版本的安装包,其中可能仍然存在少量 bug 或者功能实现不完整的问题,后续我会陆续解决。另外,我有增加一个自动推荐系统的打算,后续可能一并更新,敬请期待!
- 标题: Musician2.0:重大更新
- 作者: aaaaa
- 创建于 : 2026-04-29 17:00:00
- 更新于 : 2026-04-29 17:07:04
- 链接: https://redefine.ohevan.com/2026/04/29/Musician2.0:重大更新/
- 版权声明: 版权所有 © aaaaa,禁止转载。