根据MDN:
HTMLMediaElement
界面将属性添加到HTMLElement
支持与媒体相关的基本功能所需的方法和方法, 在音频和视频中很常见。
HTMLMediaElement.captureStream()
。它可以与<video>
和<canvas>
元素一起使用以捕获其流。
相反,您可以将{strong>视频流作为srcObject
添加到<video>
元素,然后显示它。 <canvas>
元素也可以吗?
是否可以将流作为源添加到HTML <canvas>
元素?
答案 0 :(得分:2)
不,任何Canvas API中都没有能够使用MediaStream的东西。
canvas API仅适用于原始像素,并且不包含任何类型的解码器。您必须使用能够执行此解码的javascript对象(例如ImageBitmap)或HTMLElements。
因此,对于MediaStream,当前唯一能够解码其视频内容的对象将是HTMLVideoElement,您将可以draw on your canvas easily。
答案 1 :(得分:1)
@Kaiido是正确的,因为没有任何方法可以直接执行此操作。因此,这是您必须执行的操作:
function onFrame() {
window.requestAnimationFrame(onFrame);
canvasContext.drawImage(video, 0, 0);
}
onFrame();
您将遇到几个陷阱:
captureStream
,由于政策限制,如果该标签页没有焦点,它将无法正常工作。