HTMLCanvasElement: captureStream() 方法
captureStream()
方法是 HTMLCanvasElement
接口的方法,它返回一个 MediaStream
,其中包含一个 CanvasCaptureMediaStreamTrack
,该 track 包含画布内容的实时视频捕获。
语法
js
captureStream()
captureStream(frameRate)
参数
frameRate
可选-
一个双精度浮点数,表示每帧的捕获率。如果未设置,则每次画布发生变化时都会捕获新帧;如果设置为
0
,则不会自动捕获帧;相反,只有在返回 track 的requestFrame()
方法被调用时才会捕获帧。
返回值
一个 MediaStream
对象的引用,其中包含一个 CanvasCaptureMediaStreamTrack
。
异常
NotSupportedError
DOMException
-
如果
frameRate
的值为负数,则抛出此异常。 SecurityError
DOMException
-
画布的位图不是源代码干净的;至少部分内容已从与加载文档本身的站点不同的站点加载,或可能已从该站点加载。
示例
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 |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
-
HTMLMediaElement.captureStream()
,它允许从媒体元素捕获流。 MediaStream
- 媒体捕获和流 API