调用 HTMLCanvasElement.captureStream() 方法可以从 canvas 实时获取视频流。
MediaStream stream = canvas.captureStream(frameRate);
// CanvasCaptureMediaStreamTrack 的定义
interface CanvasCaptureMediaStreamTrack : MediaStreamTrack {
readonly attribute HTMLCanvasElement canvas;
void requestFrame();
}
CanvasCaptureMediaStreamTrack 继承自 MediaStreamTrack,增加了 canvas 属性和 requestFrame() 方法。
从 canvas 元素捕获视频流,将视频流发送给对等端。HTMLCanvasElement.captureStream() 方法示例。
// 获取canvas元素
const canvasElt = document.querySelector('canvas');
// 获取媒体流,帧率为25
const stream = canvasElt.captureStream(25);
// 使用RTCPeerConnection将媒体流发送给对等端
pc.addStream(stream);