1.4 KiB
1.4 KiB
Context
- 现有音乐播放器的队列来自画布音频节点或工具内筛选结果,属于临时运行态。
- 素材库音频与 AI 任务音频都已具备统一的
Asset视图,但没有播放列表关系表。
Goals
- 提供持久化播放列表与默认收藏列表
- 保持画布播放行为不变
- 在媒体库音频卡片上提供低成本入口
Non-Goals
- 不实现拖拽排序
- 不新增播放列表封面、分享、导出等扩展字段
- 不把画布节点直接加入播放列表
Decisions
独立 playlist store
- 使用单独的 localforage store 保存播放列表元数据和列表项
- 只保存
playlistId -> assetId[]轻量关系,不改动现有素材存储结构
双轨播放队列
queueSource=canvas:继续沿用画布音频队列queueSource=playlist:由音乐播放器或媒体库中的播放列表触发- 播放器 UI 根据
queueSource展示副标题与列表内容
删除与兼容
- 删除素材时,级联删除所有播放列表中的对应引用
- 删除播放列表时,不影响素材本体
- 系统播放列表“收藏”固定存在,不允许删除或重命名
Risks
- 右键菜单可能与虚拟列表滚动冲突
- 通过 portal + fixed 定位,并在点击外部/滚动时关闭
- AI 任务音频被删除后,播放列表可能残留无效引用
- 在素材删除入口做级联清理,并在读取列表时过滤缺失素材