mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 19:06:15 -08:00
refactor(vtt-thumbnail): [PKG-VTT-THUMB-03] validate cues and separate pure lookup
This commit is contained in:
1 parent
524ddf784f
commit
80588a3046
19 files changed
+3049
-169
No files matched your search
@@ -0,0 +1,38 @@
|
||||
# PKG-VTT-THUMB-03 解析与模块整理完成
|
||||
|
||||
在 524ddf78 的请求/资源检查点基础上,完成纯解析与区间查找边界。
|
||||
parseVtt 导出纯 findThumbnail,preview 只负责消费 cue、定位和计时器。
|
||||
注册、请求、生命周期、解析、视图及旧源码 helper 的职责详见包内 ARCHITECTURE.md。
|
||||
|
||||
## 格式支持和修复
|
||||
|
||||
新解析器识别 BOM/CRLF、header 注释、cue ID、NOTE 注释、STYLE/REGION 块与 timing settings。
|
||||
这些块不用于修改播放器样式。三位及更长小时数不再被截断。无效头、时间戳、逆向区间、
|
||||
缺失图片、重复/未知 xywh 键、非有限/负数坐标、零尺寸等给出带原始行号的 TypeError,
|
||||
在安装 UI 之前整体拒绝。坐标前后空白现在规范为可用 CSS 数字。
|
||||
|
||||
格式结构参考 [W3C WebVTT](https://www.w3.org/TR/webvtt1/)(2026-09-13 核对),
|
||||
采用自有实现,没有引入第三方解析器或复制其实现。这里仅解析 thumbnail metadata,
|
||||
不是完整字幕解析/渲染器;不处理多行字幕 payload、timestamp-map 偏移或全部字幕设置。
|
||||
|
||||
## 兼容边界
|
||||
|
||||
保留 floor 时间边界、首个包含端点的命中、原始输入顺序、重叠/未排序 cue、正常小数矩形、
|
||||
四键排列与字面 URL 拼接。还保留历史紧凑箭头、纯秒时间、分钟/秒字段的进位算术、
|
||||
零时长 cue、紧密 cue 对及 time/payload 间空行;不因标准校验重新收紧已可用的旧输入。
|
||||
空文件/仅头/仅注释均为空预览。真实 demo 120 个 cue 与旧 parser 深度比较完全相同。
|
||||
坏格式曾生成错误 CSS 或无法定位的异常,不视为要求继续保持的有效 API。
|
||||
|
||||
## 验证
|
||||
|
||||
26 项解析测试在固定旧 parser/运行产物上 5 通过、21 失败;新源码通过。
|
||||
坏输入还通过候选工厂验证 Promise 拒绝及监听器/控件清理;扩展 cue 验证重叠首个命中。
|
||||
浏览器用真实 HTTP 文本、sprite、旧/新核心验证扩展 VTT 悬停与坏格式拒绝后的重试恢复,
|
||||
继续运行原生请求取消和 destroy(false) 清理。各入口和最终 CI 以
|
||||
[验证记录](../baselines/vtt-thumbnail-parser.json)为准,不把纯 parser 测试称为安装包证据。
|
||||
|
||||
本任务完成的是 03 的内部结构和已复现输入/生命周期修复。04 继续严格 TS、公开类型和
|
||||
旧消费形式;05/06 继续旧核心范围、移动/全屏/chapter 组合、安装/demo/编辑器。
|
||||
类型/导出/完整生命周期风险继续由后续任务承接,不能据此声称包已可发布。
|
||||
无新依赖或版本变化;正常构建生成 main/legacy/ESM 及 docs 副本。本任务独立提交,
|
||||
回退只恢复解析检查点,前次资源修复仍可保留;不推送或发布。
|
||||
Reference in new issue
Block a user