Available on crate feature
camoufox only.Expand description
录像 Screencast:对标 DrissionPage 的 tab.screencast。
大道至简:不走 Juggler 原生 Page.startScreencast(那要处理 screencastFrame 事件 + 逐帧 ack +
节流,复杂度更高),而是起一个后台任务按帧间隔反复截视口(复用 [TabCore::capture])。
模式(ScreencastMode):
Imgs:持续逐帧把视口存为 PNG(frame_000000.png、frame_000001.png…)。FrugalImgs:仅当画面变化(与上一帧字节不同)才存——对应 DP 的“省流“模式。Video/FrugalVideo:先取帧,停止时用 ffmpeg 合成 mp4(对标 DP 的 video 模式需 opencv, 这里换成更通用的 ffmpeg CLI,不引入 Rust 依赖);未装 ffmpeg 则报错并指引改用Imgs。
ⓘ
let cast = tab.screencast();
cast.set_save_path("video").set_mode(ScreencastMode::Imgs).set_fps(10.0);
cast.start(None).await?;
tab.wait().secs(3.0).await;
let out = cast.stop().await?; // imgs→帧目录;video→mp4 文件Structs§
- Screencast
tab.screencast()返回的录像句柄(对应 DPtab.screencast)。
Enums§
- Screencast
Mode - 录制模式(对标 DP
screencast.set_mode.*)。