fix(player): 收敛播放入口缓冲提示

This commit is contained in:
Zhou Weidong committed 2026-10-22 10:47:16 +08:00
1 parent f302b396b7
commit 7ad4681049
12 files changed
+218 -42

No files matched your search

@@ -0,0 +1,21 @@
# 播放入口无缓冲提示
## 目标
- 未初始化进度条显示静态 inactive 轨道,不出现流动加载高光。
- 仅真实 buffering 持续超过 350ms 时显示白色高光。
- 起播定位阶段不叠加 session 居中 loading;只有 ticket loading 居中显示。
- 同集返回复用 controller;重建时 initialize→seek→play。
## 实施步骤
1. 调整 SeekProgressBar 与 _FeedProgressBar 的初始化/缓冲状态判断。
2. 删除 PlayerView 的 session loading 居中圈,仅保留 ticket loading。
3. preparePlayer 统一通过 VideoPlayerPort.seekTo 定位缓存位置。
4. 更新进度条、全屏入口、详情返回和重建顺序测试。
5. 执行 `dart analyze lib test` 与 `flutter test --no-pub`,回填 PROGRESS 后提交合并。
## 风险 / 待确认
- 真实持续网络卡顿仍保留缓冲高光。
- 锁定集继续沿用静态空轨道和禁用 seek 行为。
+35
View File
@@ -391,3 +391,38 @@ $ flutter test --no-pub
解读:seek 完成后缓存与上报使用实际位置,越界目标被 clamp;seek 后立即
进详情并返回仍保持目标位置。全量静态分析零告警,591 项测试全过。
`pubspec.lock` 已还原,未启停服务,未操作真机。
## 2026-10-22 播放入口无缓冲提示
- 已从 Seek 修复合并后的 `develop`(`f302b39`)创建 `feature/playback-entry-no-buffer`。
- 未初始化进度条改为静态 inactive 轨道,不显示流动高光且不可拖动。
- 仅 initialized 且 isBuffering 持续超过 350ms 时显示白色缓冲高光。
- PlayerView 删除 session 居中 loading,只保留 ticket loading。
- preparePlayer 改为初始化完成后先 seek 缓存位置再 play;详情返回复用原 controller。
执行命令与原始输出:
```text
$ flutter test --no-pub test/playback/seek_progress_bar_test.dart
00:00 +7: All tests passed!
$ flutter test --no-pub test/home/home_preview_layout_test.dart
00:01 +8: All tests passed!
$ flutter test --no-pub test/player/player_logic_test.dart
00:00 +40: All tests passed!
$ flutter test --no-pub test/player/player_fullscreen_test.dart
00:09 +37: All tests passed!
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test --no-pub
00:49 +593: All tests passed!
```
解读:短缓冲不闪、持续缓冲仍显示白色高光;未初始化/入口/返回/重建路径
均无多余 loading,重建顺序为 initialize→seek→play。全量静态分析零告警,
593 项测试全过。`pubspec.lock` 已还原,未启停服务,未操作真机。