Files
ArtPlayer/refactor/changes/2026-09-16-PKG-DANMUKU-START-01-first-sample.md
T

68 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PKG-DANMUKU-START-01 首帧之前的采样区间
状态:本缺陷修复完成。起点 b5f8b5e28e33cfb44e7aa93089b6dfbf247142f0。
关闭 DANMUKU-INSTALLED-GAP-01;PKG-DANMUKU-08 的其他组合与设备门槛仍保留。
这属于实施与回归验证,没有启动用户要求自行指导的正式复盘。
## 原因和修复
完整安装包 WebKit 回归的原始轨迹中,800ms CPU 阻塞期间媒体从约0.461前进到
1.261;第一次 readys 查询已经在阻塞之后,first/middle 留在 wait 且未进入
beforeVisible。原 sampling-window 直到 RAF 内第一次 capture 才保存时间及
等待队列,因此没有先前区间可供补回。此前的连续两帧间隔测试未覆盖这个入口。
新增受控测试在播放开始后、第一帧前推进800ms,稳定复现两行都未显示。
新增真实浏览器控制在 start 事件中进行1000ms CPU 工作,保留原生媒体时钟、
RAF、readys 返回值和队列状态;修复前 Chromium/WebKit 同样漏掉 first/middle。
Firefox 在这次负例的第一帧前没有前进媒体时间,不能称其复现了相同缺陷。
`SamplingWindow.begin` 只在没有起点时保存媒体时间及既有等待行;Scheduler
在确认开始播放且可见时、请求 RAF 前调用它。它不额外查询公开 readys,也不在
RAF 外执行 beforeVisible 或 visible。重复 play/playing/start 不向前覆盖起点。
原取消、seek、stop、hide、document visibility/adoption 清空规则保持。
新插入的过期行、已采样的 false 回调仍不会因跨窗口而被额外重试。
进一步补测发现第0秒也必须覆盖:旧公开 playing 要求 currentTime > 0。
因此内部起点还接受已解除暂停、未结束且 readyState > 2 的真实媒体状态。
这不修改公开 playing;实际显示调度仍使用原 playing 条件。第0秒受控用例
在此补充前失败、补充后通过,三浏览器同时验证了真实零点播放入口。
没有改变公开声明、事件负载、回调串行顺序、轨道算法、Worker 协议、显示寿命、
播放速度或依赖。维护文档明确起点与公开 getter 的区别。
## 验证证据
详见 [机器证据](../baselines/danmuku-start-validation.json),包含原失败的精确输入、
首个采样、红绿结果、安装来源、源码/产物指纹和实际模型负载计数。
- Node24.21.0 / Yarn1.22.22。最终 `yarn test:danmuku` 278/278,通过旧契约、
热力图、renderer、输入、Worker、失败/取消和调度回归;25.322秒。
严格生产 tsc 和修改范围 lint 通过。
- 安装后的 main/legacy 各61/61调度测试通过,运行安装包内真正的 Worker 代码;
包含三小时模拟时钟、池复用、暂停/seek、串行异步回调及首帧/零点红绿。
- 最终源码三引擎时序24/24,61.623秒;安装产物24/24,57.128秒;均无跳过、
失败或重试。包括原800ms CPU窗口、首次RAF前阻塞、第0秒启动和异步回调间隔。
原 readys 查询保持瞬时窗口,候选 first/middle/sentinel 按序显示。
旧版本用例仍是历史观察或精确缺陷对照,不代表旧版已经修复。
- 最终候选核心下的真实 MediaPipe Mask 组合三引擎3/3,52.106秒。每引擎
120行全部显示,模型输出分别73/88/49次,含暂停、seek和网页全屏。
零点补充前还验证了三个新旧核心×三个浏览器9/9;它是中间版本证据,未冒充
最终代码的完整九组合。没有降低模型尺寸、负载或替换 SDK 内部计算。
- 最终隔离安装为 `.cache/packages/run-n5mxDm`,显式包含核心、Chapter和Danmuku。
此通用消费者检查的36项运行时、5旧类型/8精确类型模式属于核心/Chapter;
Danmuku 另由安装后的调度及浏览器检查证明。它不是完整20包CI矩阵。
main/legacy/ESM 在工作区、docs/compiled和安装目录的字节逐一相等。
最后构建曾出现一次 Windows copyfile UNKNOWN/-4094,磁盘空间充足且文件属性
正常;下一次相同构建成功。保留失败日志,根因未证实,没有为其修改构建逻辑。
## 剩余边界与下一步
原完整 WebKit 的13失败报告原样保留;本提交只关闭其中弹幕首采样缺陷。
Windows WebKit26.6不是物理Safari,真实设备、其余组合问题和远端CI尚不能
由这些本机结果替代。Chromium153.0.8010.12、Firefox155.0的版本见逐案例附件。
下一步继续剩余包验收与版本准备。每包大版本升级仍按已有政策单独实施;
完成全部实施后等待用户指导复盘,不能据此推送或发布。
回退本任务时须一起回退源码、生成产物、测试及状态;原始失败证据继续保留。