CanvasCaptureMediaStreamTrack: requestFrame() 方法
CanvasCaptureMediaStreamTrack 接口的 requestFrame() 方法会请求从 Canvas 捕获一帧并将其发送到流。
需要精确控制渲染和帧捕获时序的应用程序可以使用 requestFrame() 来直接指定捕获帧的时间。
为了防止自动捕获帧,即帧仅在调用 requestFrame() 时被捕获,请在创建流时为 captureStream() 方法指定 0 值。
语法
js
requestFrame()
参数
无。
返回值
无(undefined)。
用法说明
目前规范中有一个问题指出,此时,如果 Canvas 并非源自干净(origin-clean),则不会抛出任何异常。这将来可能会改变,因此最好提前规划并留意可能的异常,例如 SecurityError(尽管规范中未提及可能抛出的具体错误,但这是一种可能的候选)。
示例
js
// Find the canvas element to capture
const canvasElt = document.querySelector("canvas");
// Get the stream
const stream = canvasElt.captureStream(25); // 25 FPS
// Send the current state of the canvas as a frame to the stream
stream.getVideoTracks()[0].requestFrame();
规范
| 规范 |
|---|
| 从 DOM 元素捕获媒体 # dom-canvascapturemediastreamtrack-requestframe |
浏览器兼容性
加载中…