Files
ArtPlayer/refactor/changes/2026-09-15-PKG-ASR-05-initial-error.md
T

3.1 KiB
Raw Blame History

PKG-ASR-05 首次媒体失败与恢复

来源 HEAD:9cf4a58480118f92b1ae58e5d8ae6664961d1f70。接续任务10的播放中错误 修复,验证此前没有覆盖的首次 metadata 之前失败;任务05保持 doing。

新增验证

asr-initial-error.spec.js 从构造起就使用不可解码的本地 HTTP JSON 内容,等待 原生 MediaError code 4,再通过真实按钮调用 play,确认原生 NotSupportedError 返回给调用方。播放器未 ready、零 Context、零识别回调、没有字幕。

按 default/capture 和核心 5.3.0/5.4.0/候选拆成两个独立用例:

  1. 在失败状态下调用公开 stop、destroy,始终不创建音频资源并清理播放器 DOM。 这部分不要求 WebAudio,所以 Chromium/Firefox/Windows WebKit 都实际执行。
  2. 同一实例切换到首个有效 AAC 后,真实按钮播放、至少三块非零 PCM、字幕更新, 一个 Context 从 running 到最终 closed。缺少 WebAudio 时仅跳过此恢复用例, 不把已完成的失败路径观察算成音频恢复通过。

没有注入 native error、模拟 AudioContext/PCM,识别回调只把实际 PCM 统计并返回 本地测试文字。没有调用外部识别服务或麦克风。该用例证明首次失败的有限路径, 不声称覆盖每种网络中断、codec、设备或错误时序。

安装与维护

本次运行代码、类型、根依赖/锁均未改,复用任务10的已隔离安装 run-gTeZ8R。 main/legacy 两份映射经既有验证器检查当前源码、构建输入与 tarball 字节身份, 没有缺包时退回源码。没有重新打包或把这次新增 ARCHITECTURE 文字说成已包含在 旧安装归档;发布候选最终仍需重新打包。源代码一致性与完整包内容新鲜度是两件事。

CI installed 清单新增该文件,ASR 共九个浏览器文件;清单用例保护它不能被遗漏。 包内架构说明和环境矩阵 ASR 行同步,避免初始 BASE-08 的“待音频验证”描述被 当作当前进度。其他行仍按矩阵开头的时间范围说明读取,不在本轮代为宣称完成。

结果与限制

Node 24.21.0、Yarn 1.22.22;源码与 installed main/legacy 的实际报告见 机器证据。每轮包含18项首次失败 清理和12项实际恢复,另6项 Windows WebKit 恢复因缺WebAudio跳过。浏览器为 Chromium 153.0.8010.12、Firefox 155.0、WebKit 26.6。无重试,没有新生产缺陷。

定向 lint、docs-tools 类型、6项清单回归和严格工具链通过。本次不重复上一任务 已通过的234项生产专项,也不把重复使用安装归档算作一次新打包。原生媒体请求 取消/错误日志保留,不把测试通过写成所有请求都正常完成。

执行 yarn test:browser asr-initial-error.spec.js --workers=1;指定经验证的 ARTPLAYER_BROWSER_ARTIFACTS 则运行安装模式。源码/安装 scope 的其余规则不变。 没有推送或远端CI执行;设备、外部调用方服务、完整分发和发布复盘仍归既有任务。 回退只撤销新增测试、清单项和文档,不回退任务10的媒体错误修复。