【发布时间】:2017-05-17 13:10:53
【问题描述】:
我目前正在尝试使用captureStream() 方法将画布转换为实时视频流。因此,我首先创建了一个可以绘制的画布(因此我使用this little code。所以我有一个画布,我可以在该画布中绘制。现在,我想要一个视频流,它可以永久显示此画布的内容。
所以我的代码是这样的:
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Create HTML5 Canvas JavaScript Drawing App Example</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<!--[if IE]><script type="text/javascript" src="excanvas.js"></script><![endif]-->
<script type="text/javascript" src="html5-canvas-drawing-app.js"></script>
</head>
<body>
<div id="canvasDiv"></div>
<video id="video" autoplay></video>
<script type="text/javascript">
$(document).ready(function() {
prepareCanvas();
var canvas = $('#canvasDiv');
var video = $('#video');
var stream = canvas.captureStream();
video.srcObject = stream;
});
</script>
</body>
</html>
- 您在链接下找到的 JS 文件(但这些文件仅对绘图感兴趣,因此它们不会在此处更改任何内容)。
当我运行这段代码时,我立即收到消息canvas.captureStream() is not a function。有没有人看到错误或可以告诉我为什么它根本不起作用?
谢谢
【问题讨论】:
-
您在 jquery 对象上调用它,而不是在 HTMLElement 上。 c应该是画布[0]。在调用 captureStream 之前,IIRC 画布应该被初始化(在其上下文中绘制一些东西)。
标签: javascript html canvas html5-canvas html5-video