Files
ArtPlayer/refactor/changes/2026-09-13-PKG-DANMUKU-11-visible-lifetime.md
T

44 lines
3.1 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-11 Worker 等待与可见寿命
07稳定性审查发现独立计时问题,拆为本任务修复;07本身仍未完成。
配置speed为1秒,Worker回复之前的隐藏等待如果超过1秒,弹幕刚触发visible就会
在下一调度帧被回收。开始时间原先在postMessage前设置,而CSS显示在回复后才开始。
## 兼容范围
修复仅把成功放置的可见起点与实际放置时间对齐。保留原speed、Worker几何输入、
同步/异步门面、事件参数/顺序、状态池、取消与错误行为;不改变公开类型或包入口。
空轨道/取消不新增visible;暂停后的剩余寿命、播放速度与旧seek/reset行为仍回归。
这是原来隐藏等待吞掉可见时长的缺陷修正,等待较长的弹幕会获得完整显示时间。
历史readys的±0.1秒窗口和beforeVisible串行语义不在此任务改变。
## 验证
受控红测使用真实Worker算法:mode0/1/2、1秒寿命、等待3秒。三个开始时间断言
均得到1000而非4000,明确复现本问题;修复后的绿测继续验证250ms剩余寿命和一次
回收断言。原始日志保留在refactor/.cache/danmuku11-unit-red.log。
原生测试使用实际视频与真实Worker几何,仅通过观察用Worker子类给请求传递加
1500ms延迟,记录post/reply/visible/recycle时间。它验证人为注入延迟后的行为,
不声称真实用户环境必然发生相同Worker延迟。
完整源码253项通过,正式main/legacy各57项调度与Worker测试通过(包括共同的
内部WorkerClient测试,不能都算独立产物案例)。构建、目标lint和分包严格TS通过。
源码浏览器90项:原调度66项加寿命24项,覆盖两核心、新旧插件、mode0/1及三引擎;
main/legacy各选12项候选寿命用例,总114项通过,无重试或跳过。以visible事件到
节点回收测得生命周期,不把它称为逐帧视觉/自然Worker饥饿或长期吞吐验收。
相同1秒配置下,旧版测得0–15ms,修复源码998–1044ms,main1004–1041ms、
legacy1005–1027ms;原生逐帧调度有少量回收延后,受控用例精确验证时间扣减。
具体环境、字节及时间见[机器证据](../baselines/danmuku-lifetime-validation.json)。
首次浏览器运行也触发了旧版已登记的play/playing双循环,历史两次请求与单次计时
夹具冲突。将插件安装放在原生playing之后并显式启动一次来隔离该已知缺陷,未改变
被测时钟/队列或寿命阈值。隔离红测4个旧版缺陷观察通过、4个候选寿命断言失败,
再修复生产。第一次失败也留档,没有把夹具故障当成本任务独立红测。
独立只读复查确认取消/节点检查在时钟更新之前,几何与剩余寿命仍按准备时速度
计算,setState→place→visible顺序不变;包ARCHITECTURE同步维护计时边界。
无新依赖、公开类型、版本或分发入口变更;构建产物和docs复制保持相同字节。
状态以tasks.json为准。回退本任务独立commit
会恢复旧计时问题,不撤销06类型迁移或10热力图修复。未推送、未发布。