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

瀏覽器相容性

另見