Skip to content

Latest commit

 

History

History
31 lines (22 loc) · 3.72 KB

File metadata and controls

31 lines (22 loc) · 3.72 KB

v0.19.2:采集体验小版本——窗口选择增强 + 开始即录门控

状态:已实施(2026-09-03;真机验收待执行) 依据:用户实测反馈 4 点(B站独立播放窗口/抖音固定标题仅能全窗口选择 · 系统窗口未过滤 · 开始不等待引擎就绪)逐项裁决(2026-09-03:系统窗口彻底过滤+开关找回 / 就绪等待自动开录、等待期不显示采集中控件且 AV 同刻 / 评分表扩充+z 序置顶) 关联:前置修复 [802a370](live 预热 StrictMode 双跑语义收敛)· 代码提交 [dd5f9b2] · REQ-271~273(已登记);原排期 REQ-261/REQ-259 顺延 v0.19.3/v0.19.4(本小版本用户实测插队裁决)

本批已交付

用户反馈 实现
① B站视频新开播放窗口标题不固定、② 抖音标题固定"抖音"——仅能通过全部窗口选择 评分表扩充(window_filter/windows.rs):标题词 抖音/douyin/快手 + 进程词 douyin/kuaishou/bilibili(独立客户端)——固定标题与无标题关键词的播放窗口都能进"推荐窗口";z 序置顶:CaptureWindow.zOrder = EnumWindows 自上而下序号,推荐区同级按 z 序(活跃/播放中窗口自然靠前——真"播放中"检测需 OCR/音频轮询,登记观察项)
③ 系统进程(终端/记事本/文件资源管理器等)未过滤 系统窗口过滤:window_filter::is_system_window 进程白名单(explorer/notepad/cmd/powershell/pwsh/Windowsterminal/taskmgr/ApplicationFrameHost/SystemSettings 等,纯函数+单测)→ CaptureWindow.systemWindow → 前端默认隐藏,勾选"显示系统窗口"找回(能力不丢)
④ 点开始采集无论引擎是否就绪都会开始 开始即录门控:后端生命周期 start 有界等待上限 5s→15s(CUDA 冷载 >5s 常超时触发"取消+内联"双引擎重载——超时不再双载,取消并回滚会话行后明确报错请重试);前端新增启动过渡态(starting):点击即挡双击、未就绪时按钮置"⏳ 引擎初始化中…";只有 recording 事件(引擎真正就绪)才显示暂停/浮窗等采集中控件,等待期不出现会话控件;wasEngineReady 分流避免内联路径提前置活动态

关键实现说明

  • z 序近似:EnumWindows 遍历即顶层窗口 z 序(0=最顶);推荐区排序从"同分按标题"改为"同分按 z 序"——浏览器多标签同分窗口不再按字母埋没活跃窗口。
  • 系统窗口判定只用进程名(小写、无扩展名、精确匹配)——标题易变(资源管理器标题=目录名);空进程名不猜不滤(保留兜底可捕获窗口)。
  • 等待期一致性:录制真正开始时音频/屏幕共享同一会话纪元(ADR-008 既有口径),前端从"点击"到"recording 事件"全程不出现"采集中"控件——视觉与听觉同刻启动承诺可观察。
  • dev StrictMode 双跑问题同批修复(802a370):预热 effect 单次守卫 + 加载期 Cancel 即时释放(不先报 Ready 再报取消),预热日志不再自相矛盾。

测试与验证

  • Rust:window_filter 系统窗口判定/媒体与办公不误判(+2)+ windows 抖音评分(+1)——全量 2051 通过 / 2 失败(note_filter 预存,TD-30-B);clippy 零警告
  • 前端:tsc 零错误 · vitest 70 文件 525 用例全绿
  • 真机验收项(待执行):抖音/B站独立窗口出现在推荐区;系统窗口默认消失且开关找回;未就绪点开始→"引擎初始化中…"→就绪自动开录且无暂停/浮窗控件提前出现

待办

  • 真机验收(①②③④ 各场景)
  • "播放中窗口"真检测(OCR/音频轮询)——观察项,量级与成本评估后再立 REQ