## 1. 频谱效果注册与数据模型改造 - [x] 1.1 在频谱相关模块中新增 Effect Registry 结构,统一定义 `effectId`、名称、默认参数、性能等级与渲染器映射 - [x] 1.2 将现有 4 种特效迁移到注册表驱动,移除页面层对特效数量和枚举的硬编码依赖 - [x] 1.3 在状态管理层新增 `selectedEffectId` 的合法性校验与默认回退逻辑 ## 2. 频谱渲染器与切换行为实现 - [x] 2.1 重构 `SpectrumView` 渲染入口为“共享频谱帧输入 + 特效渲染器输出”分层,保证切换时单一数据源 - [x] 2.2 新增至少 1 组额外频谱效果并接入注册表,验证可扩展路径(新增效果无需改动切换主流程) - [x] 2.3 实现特效切换 UI 按注册表动态展示可用效果,用户选择后在单次渲染周期内完成切换 - [x] 2.4 实现历史特效配置兼容:已保存特效不可用时自动回退默认效果且不中断渲染 ## 3. 性能守卫与持久化 - [x] 3.1 为每个特效配置目标刷新率与绘制复杂度上限,并在渲染循环中接入阈值检测 - [x] 3.2 实现高负载自动降级策略(降低刷新率或简化细节)与低负载逐步恢复策略 - [x] 3.3 打通 `selectedEffectId` 持久化读写,确保退出/重进播放页可恢复上次选择 ## 4. 验证与回归 - [ ] 4.1 完成手工冒烟:播放中连续切换多种特效、暂停/恢复、Swiper 切页可见性切换 - [ ] 4.2 完成兼容验证:历史配置值失效场景自动回退且页面不崩溃/不空白 - [ ] 4.3 完成性能验证:中低端设备下观察帧率与功耗,确认性能守卫可触发并恢复 - [x] 4.4 更新变更说明中的测试结果与风险记录,确保后续 `/opsx:apply` 可直接执行