Files
ElyOffice/tasks/reviews/C10.5-r3.md
T

1.7 KiB

FAIL

crates/ely-platform/src/media.rs:83 — ended() 把末尾 50 毫秒内的手动暂停判为播放结束,tick(true) 随即从头重播,循环媒体的暂停操作因此失效。复现:主线程 AVFoundation 播放 tests/fixtures/media/clip.mp4,在 position=0.963024051 时暂停,ended=true;放映主线程探针实际调用 toggle_media,在 position=0.969812355 时得到 playing=false,紧接着 media_tick 返回 true、playing=true。放映与编辑区每帧都调用该方法,用户在此区间暂停会立即恢复播放,违反 SHOW-10 的媒体播放行为。修复方向:分别记录手动暂停与实际播放结束,循环重启只响应实际结束;回归覆盖循环视频在结尾附近暂停并持续 tick 后仍保持暂停。

apps/ely-show/src/tests/play_more.rs:198 — 第二轮第六项要求的应用级异步媒体失败回归仍缺失:此测试在工作线程打开有效视频,仅覆盖 Player::open 的同步线程错误;新增平台测试仅验证 Player::tick 返回错误,未经过 Show::media_tick 的提示传播分支。复现:在独立副本中把 media_tick 的 Err 分支改为直接返回 false,此应用测试与 crates/ely-platform/tests/media.rs 均通过;主线程放映探针打开存在但损坏的 MP4,实际 notice=None,原因提示断言失败,当前实现则得到“无法播放:Cannot Open”。这条变异会恢复 SHOW-10、PRD 10.3 所禁止的异步失败无提示行为,现有回归仍无法捕获。修复方向:添加主线程真实播放器的应用回归,经 Show::media_tick 断言异步失败原因、失败播放实例释放及放映继续,并使移除错误传播的变异失败。