fix(player): 修复详情往返播放位置丢失

This commit is contained in:
Zhou Weidong committed 2026-10-22 10:27:58 +08:00
1 parent fe49c6d8b2
commit 759a02375a
16 files changed
+464 -5

No files matched your search

+33
View File
@@ -326,3 +326,36 @@ $ flutter test --no-pub
解读:用户暂停恢复、过期票据重取、locked/ticketError/浮层阻断及后台保存暂停
均通过;全量静态分析零告警,580 项测试全过。`pubspec.lock` 已还原,
未启停服务,未操作真机。
## 2026-10-22 播放位置连续性
- 已从 `develop`(`fe49c6d`)创建 `feature/playback-position-continuity`。
- 新增 `PlaybackPositionCache`,按 episodeId 保存 dramaId、position、duration、updatedAt。
- App Provider 注入单一缓存实例,PlayerLogic 与详情页共享。
- 进度监听、保存进度与进入详情前更新缓存;loadResumePoint 优先缓存,未命中再回源。
- 详情页继续观看与 CTA 优先使用最近缓存集,返回首页保持当前播放器位置。
- 跨剧缓存不命中;片尾保护继续复用 `clampResumePosition`。
执行命令与原始输出:
```text
$ flutter test --no-pub test/playback/playback_position_cache_test.dart
00:00 +4: All tests passed!
$ flutter test --no-pub test/player/player_logic_test.dart
00:00 +38: All tests passed!
$ flutter test --no-pub test/player/player_open_detail_test.dart
00:00 +1: All tests passed!
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test --no-pub
00:53 +589: All tests passed!
```
解读:缓存读写/过期、跨剧隔离、缓存命中去网络、服务端回落、详情 CTA 缓存集
和详情往返同秒位置均通过;全量静态分析零告警,589 项测试全过。
`pubspec.lock` 已还原,未启停服务,未操作真机。