我试图每 250 毫秒将视频源(帧)绘制到 Canvas 中,但 Canvas 没有获取任何图像数据。这是我到目前为止所做的,我可以从网络摄像头获取视频源,如果我在下面的代码中做错了什么,请提出建议:
<div>
<video id="live" width="320" height="240" autoplay style="border:5px solid #000000"> </video>
<canvas width="320" id="canvas" height="240" style="border:5px solid #000000"> </canvas>
<button id="btn" onclick="start()">Start</button>
</div>
<script>
var video = document.getElementById("live");
var canvas = document.getElementById("canvas");
var ctx = canvas.get()[0].getContext('2d');//changed this line to "canvas.getContext('2d')".
function start() {
navigator.webkitGetUserMedia({video:true}, gotStream, function() {});
btn.disabled = true;
}
function gotStream(stream) {
video.src = webkitURL.createObjectURL(stream);
}
timer = setInterval(
function () {
ctx.drawImage(video, 0, 0, 320, 240);
}, 250);
</script>
感谢任何帮助,我正在尝试分析在 Canvas 上接收到的图像是否适合流式传输到网络服务器或类似的东西。
最佳答案
从
更改行var ctx = canvas.get()[0].getContext('2d');
到
var ctx = canvas.getContext('2d');
解决了这个问题。谢谢。
关于HTML5 网络摄像头提要,试图在计时器上将图像绘制到 Canvas 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783311/