mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-27 01:21:20 -08:00
fix(multiple-subtitles): render overlapping cues on legacy hosts [PKG-MULTI-SUB-10]
This commit is contained in:
1 parent
31f9024bff
commit
8ae2762a23
24 files changed
+3465
-56
No files matched your search
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,75 @@
|
||||
# PKG-MULTI-SUB-10: old-core simultaneous caption rendering
|
||||
|
||||
## Problem and boundary
|
||||
|
||||
Actual core5.1.2/5.1.7 render only `subtitle.activeCue`, even when the native track
|
||||
contains multiple active cues. Plugin1.0.0 combined tracks by array index;
|
||||
1.1.0/1.2.0 and the prior candidate preserve independent timing and consequently
|
||||
lose visible languages on these hosts. The corrected regression fails on both
|
||||
old cores with the previous candidate main artifact, at the missing second caption.
|
||||
|
||||
The first regression also exposed a separate5.1.2 ASS conversion defect: its
|
||||
published main bundle collapses required VTT line breaks into spaces, whereas its
|
||||
tarball source preserves them. This yields two native cues rather than three.
|
||||
Task11 owns that fix. The rendering regression now uses VTT/SRT on both cores and
|
||||
additionally ASS on5.1.7; substituting the third track does not constitute ASS
|
||||
acceptance on5.1.2. Original failed runs remain in the evidence index.
|
||||
|
||||
## Implementation and compatibility
|
||||
|
||||
`caption.ts` detects the old `activeCue` surface without the newer `activeCues`
|
||||
surface, using property existence without invoking getters. It registers one old
|
||||
`subtitleUpdate` listener instead of the modern `subtitleAfterUpdate` listener.
|
||||
`legacy-caption.ts` renders all native active cue texts in their original order
|
||||
when multiple cues are active. Single/empty intervals retain core rendering.
|
||||
The existing timestamp cleanup runs after either core path.
|
||||
|
||||
No cue timing, native object, host method identity, source clock or event payload
|
||||
is replaced. The old scalar event still contains only the first cue text. Existing
|
||||
listeners keep their registration order; those before the plugin see the original
|
||||
first-cue view, while later listeners see the combined view. Applications making
|
||||
custom caption DOM replacements should register that listener after the plugin.
|
||||
The plugin already owns this caption layer and sets escape=false; if the user
|
||||
later enables escape, the adapter preserves literal text and old per-line classes.
|
||||
|
||||
The lifetime owns listener removal and rejects late callbacks after destroy.
|
||||
The adapter has no timer, media request or new runtime dependency. Public types,
|
||||
factory methods, export aliases, package versions and vendor code are unchanged.
|
||||
The nearby serializer receives only the braces required by its existing lint rule.
|
||||
|
||||
## Verification
|
||||
|
||||
Exact hashes, archived reports and browser versions are in
|
||||
[the validation index](../baselines/multiple-subtitles-legacy-validation.json).
|
||||
|
||||
- Six new Node regressions cover native order, repeated updates, scalar payloads,
|
||||
listener order, original method identity, single/empty intervals, escape/CRLF,
|
||||
timestamp cleanup, modern isolation and destroy/registration failure cleanup.
|
||||
- The complete plugin suite passes300 tests, including the historical runtime and
|
||||
public type suites. The final listener-order assertions also pass against actual
|
||||
main and legacy artifacts, six cases each.
|
||||
- Source browser matrix:105 cases,104 pass and one old5.4.0/WebKit source-seek
|
||||
failure. All six new old-host overlap cases pass. Historical missing languages
|
||||
and paused-offset observations remain labelled, not counted as correct behavior.
|
||||
- Actual main matrix:63 cases,62 pass and the same old5.4.0/WebKit failure.
|
||||
Its six old-host overlap cases pass; native cue identities, independent time
|
||||
windows, semantic HTML/CSS, repeated updates, selection/reset and clearing hold.
|
||||
- Actual legacy matrix passes12/12: six old-host cases and six modern entity cases.
|
||||
- Strict package TypeScript, root lint and explicit changed-test lint pass; root
|
||||
lint retains one existing generated-doc warning. CI regression suite passes50.
|
||||
The normal build regenerates all three package formats and matching docs copies.
|
||||
|
||||
The broad matrix reopens MULTI-SUB-SWITCH-01: waiting for seeking=false did not
|
||||
make every old-host subsequent seek reliable. The source failure retains its
|
||||
1..3-second cue but media time is0.001494 with no active cues. Task05 owns renewed
|
||||
diagnosis; this adapter does not run on that modern host. No retry, skip, timeout
|
||||
increase or passing rerun is used to erase those failures. The complete package,
|
||||
physical-device matrix, distribution gate and full refactor are not finished.
|
||||
|
||||
## Maintenance and rollback
|
||||
|
||||
Use the legacy browser spec for old-host display changes and combinations for
|
||||
historical profile comparisons. Keep converter, native seek and caption display
|
||||
failures separate. The package architecture and test READMEs map these entrypoints.
|
||||
Revert this task's commit and rebuild the package to remove the adapter; retain
|
||||
the failures and task11 in the working plan. No pushing or publishing is included.
|
||||
+7
-4
@@ -2,9 +2,9 @@
|
||||
|
||||
> 由 tasks.json 生成。请修改数据后运行 `node refactor/scripts/plan.mjs --write`,不要手改本表。
|
||||
|
||||
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 249 项,范围 22 个包及工作区/示例。
|
||||
基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 251 项,范围 22 个包及工作区/示例。
|
||||
|
||||
状态:todo 55 / doing 17 / blocked 0 / done 177 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
状态:todo 56 / doing 17 / blocked 0 / done 178 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。
|
||||
|
||||
前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
| artplayer-plugin-document-pip | 1.1.0 | PKG-DPIP-01, PKG-DPIP-02, PKG-DPIP-03, PKG-DPIP-04, PKG-DPIP-05, PKG-DPIP-06 |
|
||||
| artplayer-plugin-hls-control | 1.1.0 | PKG-HLS-01, PKG-HLS-02, PKG-HLS-03, PKG-HLS-04, PKG-HLS-SDK-01, PKG-HLS-05, PKG-HLS-06 |
|
||||
| artplayer-plugin-jassub | 1.1.0 | PKG-JASSUB-01, PKG-JASSUB-02, PKG-JASSUB-03, PKG-JASSUB-04, PKG-JASSUB-05, PKG-JASSUB-06, PKG-JASSUB-07, PKG-JASSUB-08, PKG-JASSUB-09 |
|
||||
| artplayer-plugin-multiple-subtitles | 1.2.0 | PKG-MULTI-SUB-01, PKG-MULTI-SUB-02, PKG-MULTI-SUB-03, PKG-MULTI-SUB-04, PKG-MULTI-SUB-07, PKG-MULTI-SUB-08, PKG-MULTI-SUB-05, PKG-MULTI-SUB-06, PKG-MULTI-SUB-09 |
|
||||
| artplayer-plugin-multiple-subtitles | 1.2.0 | PKG-MULTI-SUB-01, PKG-MULTI-SUB-02, PKG-MULTI-SUB-03, PKG-MULTI-SUB-04, PKG-MULTI-SUB-07, PKG-MULTI-SUB-08, PKG-MULTI-SUB-05, PKG-MULTI-SUB-06, PKG-MULTI-SUB-09, PKG-MULTI-SUB-10, PKG-MULTI-SUB-11 |
|
||||
| artplayer-plugin-vast | 1.2.0 | PKG-VAST-01, PKG-VAST-02, PKG-VAST-03, PKG-VAST-04, PKG-VAST-05, PKG-VAST-06 |
|
||||
| artplayer-plugin-vtt-thumbnail | 1.1.0 | PKG-VTT-THUMB-01, PKG-VTT-THUMB-02, PKG-VTT-THUMB-03, PKG-VTT-THUMB-04, PKG-VTT-THUMB-05, PKG-VTT-THUMB-06 |
|
||||
| artplayer-proxy-canvas | 1.1.0 | PKG-AMBILIGHT-PROXY-01, PKG-CANVAS-01, PKG-CANVAS-02, PKG-CANVAS-03, PKG-CANVAS-04, PKG-CANVAS-05, PKG-CANVAS-06, PKG-FACTORY-01 |
|
||||
@@ -229,8 +229,10 @@
|
||||
| PKG-MULTI-SUB-07 | artplayer-plugin-multiple-subtitles<br>修复字幕内嵌时间戳序列化 | PKG-MULTI-SUB-03 | 保留数字时间戳节点、修正无效 NaN 输出、明确旧/新字幕输出差异 | 旧九份实现可复现,候选有效内嵌时间戳及文字/CSS/原生字幕通过,公开工厂与选择接口不变 | H | done |
|
||||
| PKG-MULTI-SUB-08 | artplayer-plugin-multiple-subtitles<br>修复字幕实体解码与嵌套标签包装 | PKG-MULTI-SUB-04, PKG-MULTI-SUB-07 | 使用解析器既有实体表入口修复多余分号;保护字面文本并以兄弟节点包装标签,保留CSS钩子和时间戳 | 冻结旧实现复现、实体/双重编码/标签/选择重置回归、新旧核心真实字幕显示通过;vendor原文与来源校验不变,类型/分发兼容 | M | done |
|
||||
| PKG-MULTI-SUB-05 | artplayer-plugin-multiple-subtitles<br>验证新旧核心和组合 | PKG-MULTI-SUB-04, CORE-22, PKG-MULTI-SUB-07, PKG-MULTI-SUB-08 | 与核心字幕/偏移/全屏组合,旧名称调用不变 | 最终核心与原支持范围核心分别通过;设备/SDK 缺证据不能标完成 | H | doing |
|
||||
| PKG-MULTI-SUB-06 | artplayer-plugin-multiple-subtitles<br>验证分发并同步文档 | PKG-MULTI-SUB-05, ENG-07, CORE-SUBTITLE-OFFSET-01, PKG-MULTI-SUB-09 | multiple.subtitles.js、parser 来源许可及打包边界 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo |
|
||||
| PKG-MULTI-SUB-06 | artplayer-plugin-multiple-subtitles<br>验证分发并同步文档 | PKG-MULTI-SUB-05, ENG-07, CORE-SUBTITLE-OFFSET-01, PKG-MULTI-SUB-09, PKG-MULTI-SUB-10, PKG-MULTI-SUB-11 | multiple.subtitles.js、parser 来源许可及打包边界 | tarball 入口/资源、类型、8082 demo 和 README 一致,有回退记录 | H | todo |
|
||||
| PKG-MULTI-SUB-09 | artplayer-plugin-multiple-subtitles, artplayer<br>定位旧核心切源寻址与字幕显示边界 | PKG-MULTI-SUB-08, CORE-19 | 无插件及旧新插件对照、真实事件轨迹、原切源失败归因和组合测试顺序 | 保留旧核心立即寻址观察,候选首次寻址与正常字幕组合通过;不把原生时钟失败误归为字幕丢失 | M | done |
|
||||
| PKG-MULTI-SUB-10 | artplayer-plugin-multiple-subtitles<br>适配旧核心的多条活动字幕渲染 | PKG-MULTI-SUB-08, PKG-MULTI-SUB-09 | 独立旧宿主显示适配、原生异步字幕重叠回归和兼容边界说明 | 旧5.1.2/5.1.7复现先红后绿;保持原生cue对象/时间、旧事件标量和方法身份;多格式显示及清理通过,保留其他组合和设备缺口 | M | done |
|
||||
| PKG-MULTI-SUB-11 | artplayer-plugin-multiple-subtitles<br>处理旧发布核心 ASS 转换器丢失换行 | PKG-MULTI-SUB-10 | 冻结5.1.2发布/源码转换差异,兼容转换适配与真实ASS字幕回归 | 保持已有效转换行为,旧发布ASS缺陷有先红后绿与实际产物证据;不得将VTT替代夹具算作ASS通过 | M | todo |
|
||||
|
||||
## 5 包迁移:artplayer-plugin-jassub
|
||||
|
||||
@@ -649,3 +651,4 @@
|
||||
- ENG-LINT-01: [记录](changes/2026-09-14-ENG-LINT-01-manifest-order.md) [记录](baselines/manifest-lint-validation.json)
|
||||
- CORE-SUBTITLE-OFFSET-01: [记录](changes/2026-09-14-CORE-SUBTITLE-OFFSET-01-paused.md) [记录](baselines/subtitle-offset-validation.json)
|
||||
- PKG-MULTI-SUB-09: [记录](changes/2026-09-14-PKG-MULTI-SUB-09-switch-order.md) [记录](baselines/multiple-subtitles-switch-validation.json)
|
||||
- PKG-MULTI-SUB-10: [记录](changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md) [记录](baselines/multiple-subtitles-legacy-validation.json)
|
||||
@@ -1,5 +1,20 @@
|
||||
# 进度与证据
|
||||
|
||||
## PKG-MULTI-SUB-10 旧核心多条字幕显示适配完成
|
||||
|
||||
插件以activeCue/activeCues能力检测选择旧subtitleUpdate或现代subtitleAfterUpdate,
|
||||
新增独立legacy-caption模块显示原生全部活动cue;保留对象、独立时间、方法身份、
|
||||
旧事件标量和监听顺序,销毁清理,无时钟改写或额外请求。初次回归另发现5.1.2
|
||||
发布ASS转换丢换行,单独登记PKG-MULTI-SUB-11;第三轨VTT替代不计作该版本ASS通过。
|
||||
调整夹具后旧产物在5.1.2/5.1.7均因第二条缺失失败,新源码/main/legacy各6项旧宿主
|
||||
重叠回归通过。全插件300项、实际main/legacy各6项单元、严格TS、lint与CI50项通过。
|
||||
源码扩展105项为104通过1旧5.4.0/WebKit切源失败;main63项为62通过同一旧宿主失败;
|
||||
legacy12项全通过。历史缺陷观察不算兼容通过。新切源失败仍有1至3秒cue、媒体近零秒,
|
||||
说明task09的seeking=false等待不足以保证旧宿主;重新打开SWITCH风险,交由task05继续。
|
||||
三格式及docs副本已正常重建,公开声明/依赖/版本未改;见[变更记录](changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md)
|
||||
和[验证索引](baselines/multiple-subtitles-legacy-validation.json)。251项:178 done、17 doing、56 todo。
|
||||
任务05/06、真实设备及发布门槛仍未完成;下一步先处理task11的旧ASS转换,再继续组合验收。
|
||||
|
||||
## PKG-MULTI-SUB-09 切源显示问题归因完成
|
||||
|
||||
失败时字幕cue仍在1至3秒,媒体却停在约0.002秒;新增无插件/候选插件/旧1.2.0
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
| VTT-THUMB-TYPE-01 | resolved / 已复现 | Published declarations falsely describe async registration as a synchronous result | PKG-VTT-THUMB-04 |
|
||||
| VTT-THUMB-EXPORT-01 | open / 已复现 | Older CommonJS default objects and thumbnails control names differ from latest direct export and vtt-thumbnail name | PKG-VTT-THUMB-04, PKG-VTT-THUMB-05, PKG-VTT-THUMB-06 |
|
||||
| MULTI-SUB-TYPE-01 | resolved / 已复现 | Declarations omit async registration, tracks/reset and make the subtitles array required | PKG-MULTI-SUB-04 |
|
||||
| MULTI-SUB-MERGE-01 | open / 已复现 | 1.0.0 merges cues by index while later versions concatenate independently timed track cues | PKG-MULTI-SUB-02, PKG-MULTI-SUB-03, PKG-MULTI-SUB-05 |
|
||||
| MULTI-SUB-MERGE-01 | open / 已复现 | 1.0.0 merges cues by index while later versions concatenate independently timed track cues | PKG-MULTI-SUB-02, PKG-MULTI-SUB-03, PKG-MULTI-SUB-05, PKG-MULTI-SUB-10 |
|
||||
| MULTI-SUB-LIFE-01 | open / 已复现 | Pending downloads and final object URL have no destroy owner | PKG-MULTI-SUB-02, PKG-MULTI-SUB-03, PKG-MULTI-SUB-05 |
|
||||
| MULTI-SUB-EXPORT-01 | open / 已复现 | Older CommonJS default objects conflict with export-assignment declarations; latest exports a direct factory | PKG-MULTI-SUB-04, PKG-MULTI-SUB-06 |
|
||||
| MULTI-SUB-HTTP-01 | resolved / 已复现 | HTTP error responses with parseable bodies are installed as subtitles | PKG-MULTI-SUB-03, PKG-MULTI-SUB-05 |
|
||||
@@ -266,4 +266,5 @@
|
||||
| AUTO-THUMB-ENCODE-TIMEOUT-01 | resolved / 源码/产物事实 | Pending JPEG encoding has no bounded lifetime after frame readiness finishes | PKG-AUTO-THUMB-10 |
|
||||
| MULTI-SUB-MARKUP-01 | resolved / 已复现 | Semantic cue nodes receive HTML wrappers inside their annotation fields | PKG-MULTI-SUB-08 |
|
||||
| MULTI-SUB-OFFSET-01 | resolved / 已复现 | Paused Firefox subtitle offset leaves out-of-time native cues active and captions visible | PKG-MULTI-SUB-05, CORE-SUBTITLE-OFFSET-01 |
|
||||
| MULTI-SUB-SWITCH-01 | resolved / 已复现 | Intermittent WebKit core5.3.0 caption loss after selected-track source switch | PKG-MULTI-SUB-05, PKG-MULTI-SUB-09 |
|
||||
| MULTI-SUB-SWITCH-01 | open / 已复现 | Intermittent WebKit core5.3.0 caption loss after selected-track source switch | PKG-MULTI-SUB-05, PKG-MULTI-SUB-09 |
|
||||
| MULTI-SUB-ASS-01 | open / 已复现 | Published core5.1.2 ASS converter loses required VTT line breaks | PKG-MULTI-SUB-11 |
|
||||
+32
-7
@@ -2,7 +2,7 @@
|
||||
"schemaVersion": 1,
|
||||
"task": "BASE-07",
|
||||
"sourceCommit": "e01f39ff",
|
||||
"updatedAt": "2026-09-14",
|
||||
"updatedAt": "2026-09-14T05:23:17.398Z",
|
||||
"note": "Open means closure evidence is outstanding; source-observed and unverified are not reproduced runtime bugs. A source issue already mitigated in the workspace still requires candidate regression evidence. No accepted-with-scope item is implied by baseline task completion.",
|
||||
"items": [
|
||||
{
|
||||
@@ -4352,7 +4352,8 @@
|
||||
"owners": [
|
||||
"PKG-MULTI-SUB-02",
|
||||
"PKG-MULTI-SUB-03",
|
||||
"PKG-MULTI-SUB-05"
|
||||
"PKG-MULTI-SUB-05",
|
||||
"PKG-MULTI-SUB-10"
|
||||
],
|
||||
"evidence": [
|
||||
"refactor/baselines/multiple-subtitles-release.json",
|
||||
@@ -4370,11 +4371,15 @@
|
||||
"test/browser/multiple-subtitles-lifecycle.spec.js",
|
||||
"refactor/changes/2026-09-14-PKG-MULTI-SUB-05-combinations.md",
|
||||
"refactor/baselines/multiple-subtitles-combinations-validation.json",
|
||||
"test/browser/multiple-subtitles-combinations.spec.js"
|
||||
"test/browser/multiple-subtitles-combinations.spec.js",
|
||||
"refactor/changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md",
|
||||
"refactor/baselines/multiple-subtitles-legacy-validation.json",
|
||||
"test/multiple-subtitles-caption.test.js",
|
||||
"test/browser/multiple-subtitles-legacy.spec.js"
|
||||
],
|
||||
"compatibleResolution": "Keep historical merge profiles explicit and test real overlap/timing before choosing compatibility behavior.",
|
||||
"closureCriteria": "Unaligned lengths, overlap, sorting, names and real subtitle display across supported cores are verified.",
|
||||
"workspaceState": "Native three-engine comparisons on cores5.1.2/5.1.7 show only first active cue displayed for actual plugin1.1.0/1.2.0/candidate; plugin1.0.0 index-merges both languages into one visible cue. Native tracks hold both languages and selecting either alone works. Compatible old-host overlap resolution and complete device coverage remain open."
|
||||
"workspaceState": "Task10 adapts old activeCue-only hosts to display all independently timed native cues. Source/main/legacy regressions cover old5.1.2/5.1.7. Historical1.1/1.2 losses remain explicit; broader profile/device acceptance remains in task05. Old5.1.2 ASS converter is separate task11."
|
||||
},
|
||||
{
|
||||
"id": "MULTI-SUB-LIFE-01",
|
||||
@@ -6029,10 +6034,10 @@
|
||||
"id": "MULTI-SUB-SWITCH-01",
|
||||
"title": "Intermittent WebKit core5.3.0 caption loss after selected-track source switch",
|
||||
"confirmation": "reproduced",
|
||||
"workspaceState": "Original failing snapshots kept the1..3 cue intact but video time was near0.002. Independent no-plugin and published1.2/current-plugin WebKit traces reproduce5 old-core first-seek misses, with promises sometimes settled during native seeking. Candidate already waits and honors every first seek. Actual main three-engine probes and corrected normal caption sequencing pass; old race observations remain explicit.",
|
||||
"workspaceState": "Reopened during task10: both source and actual-main matrices fail old5.4.0/WebKit caption after switch despite waiting seeking=false. Source failure native time0.001494, intact1..3 cue, active=[]; task09 attribution remains supported but the later-seek workaround is insufficient. Candidate core and old5.1 display regressions pass. Task05 must diagnose remaining old-host ordering, without hiding these failures.",
|
||||
"compatibleResolution": "Classify the old-host source/native-seek race separately from caption rendering; preserve immediate-call probes, require candidate first seeks, and wait for real native source completion before independent caption-seek assertions.",
|
||||
"closureCriteria": "Root cause classified with targeted evidence, any required fix validated, and changed candidate/old-core combination rerun without hiding the original failure.",
|
||||
"status": "resolved",
|
||||
"status": "open",
|
||||
"owners": [
|
||||
"PKG-MULTI-SUB-05",
|
||||
"PKG-MULTI-SUB-09"
|
||||
@@ -6045,13 +6050,33 @@
|
||||
"refactor/baselines/subtitle-offset-validation.json",
|
||||
"refactor/changes/2026-09-14-PKG-MULTI-SUB-09-switch-order.md",
|
||||
"refactor/baselines/multiple-subtitles-switch-validation.json",
|
||||
"test/browser/multiple-subtitles-switch.spec.js"
|
||||
"test/browser/multiple-subtitles-switch.spec.js",
|
||||
"refactor/changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md",
|
||||
"refactor/baselines/multiple-subtitles-legacy-validation.json"
|
||||
],
|
||||
"resolutionEvidence": [
|
||||
"refactor/changes/2026-09-14-PKG-MULTI-SUB-09-switch-order.md",
|
||||
"refactor/baselines/multiple-subtitles-switch-validation.json"
|
||||
],
|
||||
"resolutionRationale": "No-plugin controls reproduce the same miss and a settled seek restores correct old/new captions without changing plugin data. Candidate source code already provides the necessary readiness guard (BASE-LIFE-44/CORE-19 context). This resolves the suspected plugin-switch defect; it does not approve every historical source call or complete package task05."
|
||||
},
|
||||
{
|
||||
"id": "MULTI-SUB-ASS-01",
|
||||
"title": "Published core5.1.2 ASS converter loses required VTT line breaks",
|
||||
"confirmation": "reproduced",
|
||||
"status": "open",
|
||||
"owners": [
|
||||
"PKG-MULTI-SUB-11"
|
||||
],
|
||||
"evidence": [
|
||||
"refactor/changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md",
|
||||
"refactor/baselines/multiple-subtitles-legacy-validation.json",
|
||||
"refactor/baselines/multiple-subtitles-cores.json",
|
||||
"test/browser/multiple-subtitles-legacy.spec.js"
|
||||
],
|
||||
"workspaceState": "Initial three-engine regression gets only2/3 native cues on actual5.1.2 main. Tarball source assToVtt preserves newlines while published main collapses template line breaks to spaces.5.1.7 ASS renders. Current display regression uses VTT for third5.1.2 track and explicitly does not claim ASS acceptance.",
|
||||
"compatibleResolution": "Adapt malformed old conversion in the plugin while preserving valid existing converter output and public API.",
|
||||
"closureCriteria": "Frozen actual-output reproduction, compatible conversion fix and real ASS display verified on old/current hosts and shippable formats."
|
||||
}
|
||||
]
|
||||
}
|
||||
+39
-1
@@ -2431,7 +2431,9 @@
|
||||
"PKG-MULTI-SUB-05",
|
||||
"ENG-07",
|
||||
"CORE-SUBTITLE-OFFSET-01",
|
||||
"PKG-MULTI-SUB-09"
|
||||
"PKG-MULTI-SUB-09",
|
||||
"PKG-MULTI-SUB-10",
|
||||
"PKG-MULTI-SUB-11"
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "H",
|
||||
@@ -5179,6 +5181,42 @@
|
||||
"changes/2026-09-14-PKG-MULTI-SUB-09-switch-order.md",
|
||||
"baselines/multiple-subtitles-switch-validation.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "PKG-MULTI-SUB-10",
|
||||
"phase": "5 包迁移:artplayer-plugin-multiple-subtitles",
|
||||
"title": "适配旧核心的多条活动字幕渲染",
|
||||
"scope": [
|
||||
"artplayer-plugin-multiple-subtitles"
|
||||
],
|
||||
"dependsOn": [
|
||||
"PKG-MULTI-SUB-08",
|
||||
"PKG-MULTI-SUB-09"
|
||||
],
|
||||
"status": "done",
|
||||
"risk": "M",
|
||||
"deliverable": "独立旧宿主显示适配、原生异步字幕重叠回归和兼容边界说明",
|
||||
"acceptance": "旧5.1.2/5.1.7复现先红后绿;保持原生cue对象/时间、旧事件标量和方法身份;多格式显示及清理通过,保留其他组合和设备缺口",
|
||||
"evidence": [
|
||||
"changes/2026-09-14-PKG-MULTI-SUB-10-legacy-captions.md",
|
||||
"baselines/multiple-subtitles-legacy-validation.json"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "PKG-MULTI-SUB-11",
|
||||
"phase": "5 包迁移:artplayer-plugin-multiple-subtitles",
|
||||
"title": "处理旧发布核心 ASS 转换器丢失换行",
|
||||
"scope": [
|
||||
"artplayer-plugin-multiple-subtitles"
|
||||
],
|
||||
"dependsOn": [
|
||||
"PKG-MULTI-SUB-10"
|
||||
],
|
||||
"status": "todo",
|
||||
"risk": "M",
|
||||
"deliverable": "冻结5.1.2发布/源码转换差异,兼容转换适配与真实ASS字幕回归",
|
||||
"acceptance": "保持已有效转换行为,旧发布ASS缺陷有先红后绿与实际产物证据;不得将VTT替代夹具算作ASS通过",
|
||||
"evidence": []
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user