Files
TrueGrowth/openspec/changes/archive/2026-04-29-add-canvas-audio-playback/tasks.md

48 lines
2.2 KiB
Markdown

## 1. Runtime Model
- [x] 1.1 新增共享音频播放状态与控制器
- [x] 1.2 定义 `audio-node` 元素类型与播放元数据字段
## 2. Canvas Playback
- [x] 2.1 新增音频节点渲染组件与波形/律动视觉
- [x] 2.2 将音频节点点击行为接入播放/暂停
- [x] 2.3 让当前播放节点暴露激活态与进度反馈
- [x] 2.4 将现有双击外跳行为调整为不破坏画布内播放闭环
- [x] 2.5 将音频节点视觉收敛到 Stitch 参考,移除技术型模型信息露出
- [x] 2.6 让当前播放节点的波形与律动优先由真实音频频谱驱动
- [x] 2.7 在音频分析不可用时回退到稳定的静态/伪随机波形
## 3. Canvas Element Model
- [x] 3.1 将音频插入路径从 SVG 贴图切换到 `audio-node`
- [x] 3.2 为音频节点补充基础缩放能力
- [x] 3.3 保留旧音频贴图的兼容识别
- [x] 3.4 将音频节点缩放约束为保持比例的样式安全模式
## 4. Global Player UI
- [x] 4.1 新增顶部迷你播放器浮层
- [x] 4.2 支持基础进度显示、拖动和关闭
- [x] 4.3 播放失败时提供前端提示
- [x] 4.4 支持顶部迷你播放器的上一首 / 下一首和音量控制
- [x] 4.5 将顶部迷你播放器文案与样式收敛到 Stitch HUD 风格
## 5. Data Flow
- [x] 5.1 保证插入画布的音频元素保留 `providerTaskId / clipId`
- [x] 5.2 保证任务队列插入和自动插入路径都能接入播放链
- [x] 5.3 维护当前画布音频节点的播放队列,以支持切歌逻辑
- [x] 5.4 为共享播放服务增加实时频谱与低频脉冲输出
- [x] 5.5 将播放状态订阅收敛为选择式更新,避免频谱刷新放大成全画布高频重渲染
## 6. Verification
- [x] 6.1 验证生成完成后的音频节点可在画布内直接播放
- [x] 6.2 验证顶部迷你播放器会跟随当前播放音频更新
- [x] 6.3 验证同时只会有一个音频源处于播放中
- [x] 6.4 验证音频地址失效时会显示错误而不是无响应
- [x] 6.5 验证等比缩放不会破坏音频节点布局
- [x] 6.6 验证顶部迷你播放器可以上一首 / 下一首切换并调节音量
- [x] 6.7 验证频谱分析可用时当前播放节点会随音乐律动
- [x] 6.8 验证频谱分析不可用时仍可播放且不会导致崩溃