993 B
993 B
Seek 后播放位置保持
目标
- 拖动进度条后,缓存与观看记录立即使用 seek 完成后的真实位置。
- 拖动后立即进详情/离开也不会回退到旧进度。
- 越界位置 clamp,锁定/票据失败不写无效缓存。
实施步骤
- 增加播放位置 clamp 纯函数,缓存写入统一限制在
0..duration。 - VideoPlayerPort 暴露 seek 方法,PlayerLogic 等待 seek 完成后再读取 controller。
- PlayerLogic 统一当前播放快照,监听、缓存和上报共用同一份 position/duration。
- 增加 pending seek 屏障,saveCurrentProgress 与离开路径等待 seek 和上报完成。
- 补 seek 缓存、越界 clamp、seek 后进详情并返回测试。
- 执行
dart analyze lib test与flutter test --no-pub,回填 PROGRESS 后提交合并。
风险 / 待确认
- 片尾与完成逻辑继续沿用现有 controller/播放器行为。
- 缓存仅在进程内,不改变服务端观看记录契约。