CanvasCaptureMediaStreamTrack: requestFrame() 方法

requestFrame()CanvasCaptureMediaStreamTrack 接口的一个方法,用于请求从画布捕获帧并将其发送到流。

需要仔细控制渲染和帧捕获时机的应用程序可以使用 requestFrame() 直接指定何时捕获帧。

为了防止自动捕获帧,以便仅在调用 requestFrame() 时才捕获帧,在创建流时,请为 captureStream() 方法指定值为 0。

语法

js
requestFrame()

返回值

无 (undefined)。

使用说明

目前规范中有一个问题指出,此时,如果画布不是来源干净的,则不会抛出任何异常。这在将来可能会发生变化,因此最好提前计划并注意异常,例如 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

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅