mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-11 05:26:15 -08:00
fix(ambilight): [PKG-AMBILIGHT-PROXY-01] sample canvas output pixels after resizing
This commit is contained in:
1 parent
959cccf515
commit
20f062bc90
19 files changed
+508
-20
No files matched your search
@@ -0,0 +1,44 @@
|
||||
# PKG-AMBILIGHT-PROXY-01 Canvas输出取色边界
|
||||
|
||||
从05组合检查中拆出可独立验证的源码修复;05仍需最终代理迁移后的组合和设备证据。
|
||||
当前实际proxy-canvas源码由本步输入哈希固定,未把工作区代理版本当作npm历史包。
|
||||
|
||||
## 复现与修改
|
||||
|
||||
原生canvas proxy在输出buffer改变尺寸后仍转发底层videoWidth/videoHeight。Ambilight
|
||||
原实现按转发媒体尺寸截取canvas,导致九宫格采样偏向左上角;浏览器真实视频解码后
|
||||
通过代理公开callback绘制九色native Canvas图案,以均匀颜色直接验证各区域取色,
|
||||
不mock像素读取、代理工厂或媒体播放。初始Chromium中5.4.0/候选核心均取错颜色。
|
||||
|
||||
采样模块内部来源类型明确为HTMLVideoElement或HTMLCanvasElement;根据nodeName
|
||||
区分Canvas输出,使用其width/height。原生video仍使用videoWidth/videoHeight,显示
|
||||
宽高不影响取色。保留频率/生命周期/公共Option/Result及所有导出;Canvas零输出
|
||||
尺寸不采样,恢复尺寸后可继续。不使用跨window容易失效的instanceof判断。
|
||||
|
||||
3项Node用例在修改前2失败/1正常视频通过,修改后与既有回归共56项通过。覆盖输出
|
||||
二次resize、原生视频显示尺寸与零Canvas输出恢复。完整三格式构建、专项lint/严格
|
||||
TS以及完整CI978项通过(881单元+14工程+83基线),另44项重复契约观察。
|
||||
|
||||
## 纠正历史能力假设
|
||||
|
||||
最初把5.1.7也当作canvas组合,读取不到代理draw回调;增加ready等待仍失败。
|
||||
诊断附件明确实际节点为VIDEO,而不是CANVAS。核对实际npm5.1.7的option声明和
|
||||
浏览器Artplayer.option均没有proxy配置,证明旧核心直接忽略该选项。这不是Canvas
|
||||
取色修复失败,也不能声称对该核心验证了代理。最终用单独能力断言记录该历史限制,
|
||||
同时确认原生Ambilight仍可播放取色;不会向旧核心注入虚构代理支持。
|
||||
|
||||
最终浏览器矩阵包含6项真正canvas组合(5.4.0/候选×三引擎)、3项5.1.7无proxy配置
|
||||
但原生播放的能力对照、18项既有原生视频生命周期/跨域恢复。失败与通过报告分开归档。
|
||||
|
||||
Canvas代理本身仍是未迁移代码,其异步绘帧/终止/事件归属继续由PKG-CANVAS-01至06
|
||||
核验;本步不能据“移除了Ambilight DOM”推断代理已无残余RAF。05增加PKG-CANVAS-04
|
||||
前置依赖,在依赖满足前保留todo并记录预检证据;06完整分发/demo也未完成。本子任务
|
||||
完成后独立本地commit,无推送/发布。下一步推进PKG-CANVAS-01发布契约,随后迁移代理。
|
||||
|
||||
## 验证收尾
|
||||
|
||||
最终27项浏览器全部通过,无skip;56项Node专项通过,278个生产TS文件严格检查。
|
||||
报告、输入哈希、初始颜色错误/中间能力诊断和完整CI日志见
|
||||
[验证证据](../baselines/ambilight-proxy-validation.json)。期间计划检查正确拒绝了新依赖
|
||||
未完成却将父任务标doing的状态;已改为依赖满足前todo,再完成本子任务。格式lint
|
||||
修正仅将对象字段换行,未修改已经通过的浏览器测试含义。
|
||||
Reference in new issue
Block a user