4.2 KiB
FAIL
crates/ely-platform/src/media.rs:50 — Player 的 state/play/pause/playing/position/seek/frame 全部只在 macOS 下定义,apps/ely-show/src/media.rs 无条件调用这些方法,Windows/Linux 的 ElyShow 编译失败,无法到达所宣称的“此平台未构建”提示。隔离小 crate 直接引用原始 media.rs,分别以 x86_64-unknown-linux-gnu 和 x86_64-pc-windows-msvc 执行 cargo check,均得到七个 E0599。修复方向:保证各目标上的播放器接口及帧类型可编译,并让已声明的未构建路径明确返回错误;加入对应目标的编译验证。
apps/ely-show/src/media.rs:169 — 播放实例仅以标签号和对象列表序号识别对象,同一标签中其他幻灯片的同序号媒体会复用原播放器;media_layer:205 同样沿用原画面。真实 GPUI 主线程探针先播放第一页 index=2 的 clip.mp4,再复制页面、删除副本视频、在第二页相同序号插入 2 秒 WAV,点击播放后仍读到 Ready { seconds: 1.0, video: Some((160, 90)) },实际播放源仍是第一页视频。修复方向:播放实例绑定幻灯片及媒体文件身份,在切页、对象删除或替换时停止并清理实例,播放前重新核对对象身份;覆盖同序号跨页和删除后序号复用场景。
apps/ely-show/src/preview.rs:348 — 切换合成始终把新页画在旧页上方,uncover-left 的新页保持整页不透明,因此旧页向左移动的全过程被盖住,预览直接显示新页。使用原 transition() 在真实 Metal 窗口绘制红色旧页、蓝色新页的半程帧,左右采样均为 [0,0,255,255];仅在隔离副本交换两层的叠放顺序,采样变为左红右蓝。现有 halfway_frames_mix_both_slides 只查位移参数,漏掉合成错误。修复方向:按切换类型决定旧、新页叠放顺序,为向左揭开增加实际合成像素断言。
apps/ely-show/src/preview.rs:129 — 异步预览结果仅核对标签号,Preview 也仅保存标签号(:150),preview_layer 仅按标签过滤(:179)。在第一页启动预览后切到第二页,第一页图层继续盖在第二页画布上;读取过程中切页或编辑,也会接受已过期的图层及效果配置。隔离 GPUI 探针启动第一页预览,再执行 slide.insert 并等待 current=1,旧 Preview 仍存在。修复方向:预览请求和播放状态绑定发起页面及文档修订,完成读取和每次绘制前核对,页面或修订变化时撤销预览;补充读取途中切页和编辑的测试。
apps/ely-show/src/preview.rs:161 — stop_preview 仅清除已生成的 Preview,异步图层读取没有取消状态;回调随后仍会调用 play。具体场景:预览 A 播放期间再次请求预览 B,点击画布停止 A,B 的读取完成后自动重新遮住画布。隔离 GPUI 探针在同一次更新中依次调用 preview_transition 和 stop_preview,调度器完成后 preview 为 Some,停止断言失败。修复方向:停止操作使当前预览请求失效,回调核对请求代次,覆盖停止待完成请求及连续预览场景。
apps/ely-show/src/media.rs:173 — 已播完的媒体再次点击播放时直接调用 AVPlayer.play,位置仍停在末尾,用户无法再次播放同一对象。以仓库 1 秒 clip.mp4 在主线程运行系统播放器,等到位置 1.000 且停止后再次 play,运行主循环 400 毫秒后仍为 position=1.000、playing=false;应用的复用路径执行同一操作。修复方向:区分暂停与播放结束,结束后先回到起点再播放,并验证播完后再次播放以及普通暂停继续。
apps/ely-show/src/motion.rs:110 — 切换时长的 on_commit 每次都发送完整命令,缺少相同值及待回显值的去重;动画时长、延迟(:268、:280)同样如此。NumberInput 的 Enter 与随后失焦各触发一次提交,补丁 0034:347 每次无条件新增撤销动作,单次数值编辑产生两步撤销,第一次撤销只撤回相同值。真实 LOK 探针连续提交相同 Transition JSON,撤销数实际增加 2;现有 C10.4 测试只验证单次调用。修复方向:在提交路径处理重复值,并让内核对实际无变化的提交保持历史不变;测试 Enter 后失焦及回显前重复提交。