HTMLCanvasElement: captureStream() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流瀏覽器均已支援。

HTMLCanvasElement 介面的 captureStream() 方法會返回一個 MediaStream 物件,其中包含一個 CanvasCaptureMediaStreamTrack,用於即時捕獲 canvas 的內容。

語法

js
captureStream()
captureStream(frameRate)

引數

frameRate 可選

一個雙精度浮點數值,用於指示每個幀的捕獲速率。如果未設定,則每次 canvas 更改時都會捕獲一個新幀;如果設定為 0,則不會自動捕獲幀;相反,只有當返回的軌道的 requestFrame() 方法被呼叫時,才會捕獲幀。

返回值

指向一個 MediaStream 物件的引用,該物件包含一個 CanvasCaptureMediaStreamTrack

異常

NotSupportedError DOMException

如果 frameRate 的值為負數,則會丟擲此錯誤。

SecurityError DOMException

Canvas 的點陣圖不是 origin clean;至少部分內容已從載入文件的站點以外的站點載入,或可能已從其他站點載入。

示例

js
// Find the canvas element to capture
const canvasElt = document.querySelector("canvas");

// Get the stream
const stream = canvasElt.captureStream(25); // 25 FPS

// Do things to the stream
// E.g. Send it to another computer using an RTCPeerConnection
//      pc is an RTCPeerConnection created elsewhere
stream.getTracks().forEach((track) => pc.addTrack(track, stream));

規範

規範
從 DOM 元素捕獲媒體
# dom-htmlcanvaselement-capturestream

瀏覽器相容性

另見