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