docs: 记录 K95.2 封面过渡

This commit is contained in:
Zhou Weidong committed 2026-10-21 18:06:35 +08:00
1 parent 419119725e
commit ff14762426
2 files changed
+93

No files matched your search

@@ -0,0 +1,54 @@
# K95.2 首切频道用封面过渡
## 目标
- 首页频道切换后立即显示目标短剧封面,视频首帧就绪后再淡入。
- 首页模式视频初始化期间不再显示 `player-session-loading` 大转圈。
- 非首页播放器及票据加载状态保持现有行为。
## 分支
- ReelShort:`fix/k95.2-poster-transition`,从最新 `origin/develop` 创建。
- FruitServer 仅写计划与 PROGRESS 留痕,不改后端功能代码。
## A. PlayerVideoSurface
- 新增可选参数 `posterUrl = ''`。
- 未 reveal 时:
- `posterUrl` 非空显示 `RemoteImage(path: posterUrl, fit: BoxFit.cover)`,
Key 为 `player-video-poster`。
- `posterUrl` 为空继续显示黑色 `ColoredBox`,保留
`player-fallback-background` Key。
- 视频 reveal 后继续通过现有 200ms `AnimatedOpacity` 淡入覆盖封面。
## B. PlayerPage
- `PlayerVideoSurface` 传入当前 `drama.posterUrl`。
- `player-session-loading` 条件增加 `!widget.homeMode`:
- 首页模式视频初始化期间只显示封面。
- 非首页播放器继续显示原 session loading。
- 首页 `player-ticket-loading` 不变。
## C. 测试
- 视频表面:非空 poster 显示 `player-video-poster`,空 poster 保留黑底且无封面。
- 首页模式:视频未就绪时不出现 `player-session-loading`。
- 非首页模式:视频未就绪时仍出现 `player-session-loading`。
- 复跑既有播放器、首页相关测试。
## 门禁
- `dart analyze lib test`
- `flutter test`
- `flutter build apk --debug`
## Git
- ReelShort 提交:`fix(home): 频道切换用封面过渡`
- `--no-ff` 合回 `develop` 并 push。
- 作者 `Zhou Weidong <502333560@qq.com>`;禁止 `git add -A`。
## 约束
- 全程中文;不改后端、ReelShortWeb、specs。
- 不安装或操作真机;完成后停住等待验收。
+39
View File
@@ -24204,3 +24204,42 @@ Running Gradle task 'assembleDebug'... 8.7s
- ReelShort develop 合并提交:`838ca2c merge: 合并 K95.1 首次切换频道无感`,
已推送 `dfa79be..838ca2c`;K95 与 K95.1 已统一合回 `develop`。
- 未改后端、ReelShortWeb、specs;未安装或操作真机,等待用户验收。
## 2026-10-21 K95.2 首切频道用封面过渡
- 已完整读取 K95.2 `docs/plans/INBOX.md`;本批次只改 ReelShort Flutter 客户端。
- 已从最新 `origin/develop` 创建 `fix/k95.2-poster-transition` worktree。
- 已先写计划 `docs/plans/2026-10-21-K95.2-poster-transition.md`,明确封面底层、
视频淡入、首页隐藏 session 大转圈及非首页保持原行为。
- 不改后端、ReelShortWeb、specs;不安装或操作真机。
- 已完成 `PlayerVideoSurface(posterUrl)`:未 reveal 时优先显示
`RemoteImage` 封面 `player-video-poster`,空封面继续保留黑色
`player-fallback-background`;视频首帧仍用 200ms 淡入覆盖。
- `PlayerPage` 已传入当前短剧 `posterUrl`,首页模式隐藏
`player-session-loading`,非首页与本页 `player-ticket-loading` 行为不变。
- 已补 poster 非空/为空、首页与非首页 session loading、既有播放页封面断言测试。
门禁原始输出:
```text
$ dart analyze lib test
Analyzing lib, test...
No issues found!
$ flutter test --no-pub
00:57 +547: All tests passed!
$ flutter build apk --debug
Running Gradle task 'assembleDebug'... 27.6s
✓ Built build/app/outputs/flutter-apk/app-debug.apk
```
解读:静态分析零告警,547 项全量测试通过,debug APK 构建成功;
`pubspec.lock` 已还原,无依赖变更。
### K95.2 交付结果
- ReelShort 功能提交:`c9adf8b fix(home): 频道切换用封面过渡`。
- ReelShort develop 合并提交:`a2a491d merge: 合并 K95.2 首切频道封面过渡`,
已推送 `838ca2c..a2a491d`。
- 未改后端、ReelShortWeb、specs;未安装或操作真机,等待用户验收。