mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-18 02:21:20 -08:00
fix(asr): [PKG-ASR-08] keep captured fallback off the audible route
This commit is contained in:
1 parent
3e3bed2b93
commit
6d7b9292f8
19 files changed
+5104
-25
No files matched your search
@@ -0,0 +1,43 @@
|
||||
# PKG-ASR-08:阻止捕获回退额外播放声音
|
||||
|
||||
子代理复核指出 captureStream 回退不拥有原播放路由,源码却把原始捕获音轨
|
||||
接到 gain=1 和 destination。主代理用外部原生 AudioContext 先绑定同一 video,
|
||||
保持其播放图运行,让 Chromium 自然拒绝 ASR 的第二次媒体源绑定并进入回退。
|
||||
原生测试证明 2.1.0 和 ASR-07 候选都产生额外输出,视频静音后该分支仍非零。
|
||||
修复前两个候选核心组合在“ASR 输出必须为零”的断言失败,保留报告与 trace。
|
||||
|
||||
## 实现与契约
|
||||
|
||||
回退改为 `capture source -> recorder -> gain(0) -> destination`,保持 Worklet
|
||||
处理活跃而不输出声音;直接绑定仍是自己的播放路由,使用 gain=1。暂停、停止、
|
||||
切源和销毁复用现有归属模型。回调继续收到非零 PCM,不靠静音输入掩盖问题。
|
||||
不改变媒体元素 muted/volume,不关闭外部 owner context,不修改公开 API、类型或版本。
|
||||
|
||||
captureStream 的 PCM 可不受媒体静音/音量影响,而直接路径跟随主 video。文档现在
|
||||
明确区分两者;此前未限定路径的概括已修正。这个修复阻止额外可听分支,不能解释为
|
||||
“视频静音后停止识别”;调用方仍使用 stop/pause 控制采集生命周期。
|
||||
|
||||
五项新单测由子代理独立编写并先得到全红;主代理集成后,检测出测试 helper 把
|
||||
Worklet 浅拷贝为两个对象,导致节点清理列表观察到旧连接。已修正 helper 登记真实
|
||||
对象身份,完整历史/候选测试重新验证,不以删除清理断言通过。
|
||||
|
||||
## 原生验证的边界
|
||||
|
||||
Firefox 实际允许重复创建 MediaElementAudioSource,两条原生播放分支都有信号,
|
||||
因此它不会自然进入本回退。这一探测结果与四个失败报告保留,单独登记未闭环的
|
||||
ASR-FOREIGN-01。Firefox 的回退验证显式强制绑定拒绝,其余 captureStream、轨道、
|
||||
采样、Worklet 和音频 analyser 全为原生,报告标记 forcedException=true。
|
||||
不能把受控拒绝说成 Firefox 自动识别外部音频图,也不能改成 skip 后宣称通过。
|
||||
|
||||
测试覆盖采集非零、ASR 输出零、原播放图静音、stop 只关闭自己、恢复时新轨道、
|
||||
切源后旧轨道结束且新源重新输出 PCM、destroy 最终关闭自己的 context。
|
||||
Firefox close 是异步的,校验使用有界轮询等待 state=closed,保持同步 destroy API。
|
||||
|
||||
验证记录见 [捕获回退证据](../baselines/asr-fallback-validation.json)。正常三格式
|
||||
构建与副本、strict/lint、213 项定向、main/legacy 各 30 项、实际隔离安装声明矩阵
|
||||
以及 source/main/legacy 原生组均记录确切输入。原生组还重跑直接路径音量和已有
|
||||
采集生命周期。Windows WebKit 无 WebAudio 的结果仍为能力跳过,不代表 Safari。
|
||||
|
||||
本项只关闭“已进入捕获回退后额外输出”的缺陷,ASR-05 的外部双 owner、CORS、
|
||||
audio-track 组合、更多核心和设备门槛继续保留。离线 demo 与 5.3.0 对照基线也由
|
||||
ASR-05 独立验收。本次未做整仓 CI、推送或发布;回退会恢复静音仍有额外输出的缺陷。
|
||||
Reference in new issue
Block a user