mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-19 03:11:20 -08:00
fix(multiple-subtitles): [PKG-MULTI-SUB-07] preserve inline timestamps and caption text
This commit is contained in:
1 parent
da64aae267
commit
7f226ff822
24 files changed
+8660
-132
No files matched your search
@@ -0,0 +1,49 @@
|
||||
# PKG-MULTI-SUB-07 内嵌时间戳与显示层修复
|
||||
|
||||
九份历史实现已复现 `<00:02.000>` 被包装成字符串并输出 `<NaN:NaN.NaN>`。
|
||||
本次保留数字 TimestampNode,处理顶层与嵌套节点,在有效的 VTT class 节点中承载
|
||||
时间戳。解析树仍不可变,重复选择/reset 不积累包装;文本、标签和轨序的原回归保留。
|
||||
私有 WrappedNode 现在与 CueNode 一样要求数字时间戳,编译负例从 8 项增为 9 项。
|
||||
|
||||
## 原生与自定义字幕层
|
||||
|
||||
直接输出有效时间戳后,Chromium 中的发布/候选核心都把 `<00:02.000>` 显示成文字。
|
||||
这不是测试超时或资源加载失败,最初两个失败断言及截图/trace 已保留。
|
||||
因此新增 caption.ts,在既有 subtitleAfterUpdate 事件后处理插件生成的专用标记。
|
||||
|
||||
- 原生 WebVTT 中的 `<c.artplayer-multiple-subtitles-timestamp>` 是合法 class 节点,
|
||||
其中的数字时间戳仍解析为 processing instruction,cue.text 不被显示层修改。
|
||||
- HTML 不会把 `<c.class>` 与 `</c>` 配对,后面的字幕可能成为该元素的子节点。
|
||||
直接删除标记曾导致后文丢失;已通过真实浏览器复现并修正为移除前导时间指令、
|
||||
将其余子节点移回父层。对应失败报告保留,最终断言检查前后文字。
|
||||
- 不对整段文字做时间戳正则删除。仅处理专用标记中的前导指令,普通用户文字和
|
||||
原有 `.art-subtitle-<name>` CSS 钩子保留。public cue.text 修改产生的字面量标签
|
||||
有真实浏览器回归,清空/reset 后正常恢复原字幕。
|
||||
- 注册的监听器由当前 lifetime 管理,失败/销毁时移除;已有资源测试改为检查所有
|
||||
监听器集合为空。没有增加新公开选项、返回值或事件,不改变逐 cue 显示策略。
|
||||
|
||||
## 验证范围
|
||||
|
||||
纯测试覆盖开始/中间/末尾、多个毫秒时间戳、Unicode、嵌套标签、冻结树、重复选择
|
||||
和重新解析有效 VTT;历史时间戳失败仍保持,不将候选修复覆盖进旧预期。
|
||||
原生场景检查开头/中间/末尾三个 processing instruction、前后文字、红色样式、
|
||||
字面量标签保留、清空/reset,以及原有 SRT、销毁/HTTP/Blob/视频切源场景。
|
||||
通过源码/main/legacy 与发布/候选核心,在 Chromium/Firefox/Windows WebKit 重跑。
|
||||
具体结果、编译器和输入指纹见[验证](../baselines/multiple-subtitles-timestamps.json)。
|
||||
|
||||
最终三入口各 37 项回归通过,本包 267 项通过;原生各 36 项,共 108 项通过,
|
||||
原生 processing instruction 精确为 00:00:01.250、00:00:02.000、00:00:03.500。
|
||||
完整 CI 2337 项通过(1987 单元、14 工程、336 基线),严格生产 TS 353 文件。
|
||||
状态更新后 9 项元数据测试通过。显式 lint 无错误/警告,全量 lint 保留既有生成声明警告。
|
||||
|
||||
## 独立发现与后续边界
|
||||
|
||||
给字面量场景提供正常 `<...>` 输入时,vendor 生成了 `<;...>;`。九份历史实现
|
||||
又复现 `<`、`>`、`&` 的多余分号,新增 MULTI-SUB-ENTITY-01,由 05 处置。
|
||||
本任务不改 vendor;最终字面量显示测试通过公开 cue.text 修改隔离显示层,明确不代表
|
||||
该实体解码缺陷已修复。额外分号的初始六个浏览器失败记录保留。
|
||||
|
||||
04 的公开类型、完整旧核心/实体设备、实体解码、全部样式/编辑器和安装消费者仍待
|
||||
后续任务。正常构建更新三个产物及 docs 副本;无新依赖、公开声明和版本变更。
|
||||
本任务独立本地提交,不推送、不发布。回退恢复原 NaN 输出并移除显示监听器;
|
||||
已发布失败基线及新发现记录仍可追溯。
|
||||
Reference in new issue
Block a user