Files

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 任务音频被删除后,播放列表可能残留无效引用
    • 在素材删除入口做级联清理,并在读取列表时过滤缺失素材