
feat(visualizer): 添加持久保存的手动随机样式- #601 #601
第一次提pr,不知道能过不过的了。
位置:feat(visualizer): 添加持久保存的手动随机样式 by DuXingXY · Pull Request #601 · chthollyphile/folia-major
做了什么
-
新增「随机样式」按钮,随机选择歌词动画及其参数。
-
新增「全随机开关」:关闭时只随机歌词样式和动画参数;开启后也随机字体、背景等外观设置,保留字幕相关配置。
问题与行为
实现与社区插件ai自动调整歌词动画参数不同的功能,此功能可以逐项调整不便于尝试新的外观,来达到类似于抽卡的效果,解决歌词动画设置复杂而又无从下手的困境从而替你做出选择。本 PR 增加一次性的「随机样式」动作:默认只随机歌词动画模式及参数,开启「全随机」后才同时随机通用外观和独立背景设置。
点击按钮后,结果通过现有设置 setter 持久保存;切歌、暂停和重启继续沿用,直到再次点击随机、手动修改指定设置或应用其他外观配置。手动修改只更新指定字段。操作会关闭现有「每首歌随机歌词动画」选项,防止下一首覆盖刚生成的结果。
实现范围
-
播放器外观区、外观设置和歌词调参台共用范围开关与随机按钮,命令面板提供相同动作。调参台先提交正在编辑的滑块草稿再随机。
-
范围开关默认关闭;单独切换范围不改变外观。偏好接入已有 JSON、短码、OBS 外观配置和设置同步,旧配置缺少该字段时保留当前值。
-
候选模式来自实时 registry,遵循减少动态效果与壁纸模式偏好,并在存在其他兼容模式时避免重复当前模式。
-
字幕设置、已有上传字体和图片内容、URL 列表保持;全部随机只改变外观参数和已有资源选择,自定义字体元数据及文件保留。
验证
使用 Node 24.14.1 / Chromium 完成验证:
-
Windows:本地验证通过。
-
Linux(Ubuntu 24.04 x64):GitHub Actions 验证通过。
-
macOS 26.6 arm64:GitHub Actions 验证通过。
三个平台均通过:
-
npm run typecheck。 -
核心随机、命令注册/契约和视觉配置导入导出:4 个测试文件,121 项单测。
-
test/component/manualRandomStyle.spec.ts:6 项浏览器回归,覆盖两种随机范围、切歌/暂停后保持结果、再次随机、单字段修改、重载恢复和真实歌词预览入口。
本地完整 diff 经工具辅助审查,发现的导入确认字段名称遗漏已修正git diff --check 通过。
[Linux / macOS 验证记录](https://github.com/DuXingXY/folia-dx/actions/runs/38382603077),测试源码固定为本 PR 提交 550a65a3。
上述验证针对本次差异,未运行全量单测或正式打包。Linux/macOS 的 Electron 原生窗口、桌面歌词和壁纸集成尚需实机验证。
后续 PR
本 PR 作为系列第一项,仅建立手动随机及其配置接入。后续计划提交:
收藏预设与命名:保存当前外观、应用/删除收藏、行内重命名及收藏备份;复用本 PR 的外观基础。
该后续 PR 将在本 PR 合并后基于最新主线整理和验证,保持低于建议规模。


