Files
FruitServer/docs/plans/INBOX.md
T

2.0 KiB
Raw Blame History

[已处理] 2026-10-20 | K51-A 修复首页进入详情页闪屏/灰屏(仅 App 端)

用户指令(2026-10-20,原文):

「从首页进短剧详情页会闪屏 灰屏看下什么问题」

根因(已定位) PlayerLogic.openDetail() 在 push 详情页之前先执行:

  1. session.setRouteVisible(false) —— 视频层被隐藏/降级为未就绪状态,feed 只能渲染封面占位;
  2. await session.playbackSettled —— 等待期间首页仍可见; 此时封面若尚未进图片缓存,RemoteImage 会先画浅色底,叠加遮罩后呈灰白 → 用户看到的就是进详情前的灰屏闪一下;随后 saveCurrentProgress 再等待一次,进一步放大该可见窗口。

口径(只改 Flutter,不动后端、不改接口)

  1. openDetail() 改为先 push 路由(视频组件保持挂载,不再 setRouteVisible(false)、不再 await playbackSettled 后再 push):
    • push 之前 session.setOverlayOpen(true),路由返回后 session.setOverlayOpen(false)(复用评论面板的暂停/恢复方式,保证详情页覆盖期间不继续外放声音);
    • 路由期间视频正常暂停,返回后回到原播放状态与进度,不重新 seek。
    • saveCurrentProgress() 放到 push 返回之后(不阻塞首帧)。
  2. 首页 feed 的「标题点击进详情」「系列信息点击进详情」走同一逻辑,确保都不闪。
  3. 详情页自身加载态保持 ink 背景 + 现有骨架,不改。

测试/门禁

  • 新增:从 feed 点详情后,push 前后视频 port 保持挂载(可断言 session.active 不变)、路由返回后播放状态与进度不变;
  • 不再出现 setRouteVisible(false) 造成的占位渲染;
  • dart analyze lib test 零告警 + flutter test 全过 + flutter build apk --debug。

流程:从 develop 拉 fix/flutter-k51-detail-flash;作者 Zhou Weidong <502333560@qq.com>;--no-ff 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。