【发布时间】:2019-08-24 08:16:48
【问题描述】:
我正在尝试通过将视频绘制到画布上来为视频添加一些过滤器。问题是当视频元素不在视图中时,它会停止绘制。理想情况下,我想将视频元素全部隐藏起来。
我认为它只会影响 chrome 浏览器。 此外,似乎如果您停止并用鼠标启动它,问题就会停止。
function drawToCanvas() {
let vid = document.getElementById('vid1')
let can = document.getElementById('can1')
let ctx = can.getContext('2d')
ctx.drawImage(vid, 0, 0, 400, 224)
setTimeout(drawToCanvas, 30)
}
document.body.addEventListener("load", drawToCanvas(), false);
html {
padding: 20px 0;
background-color: #efefef;
}
body {
width: 400px;
padding: 40px;
margin: 0 auto;
background: #fff;
box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5);
}
video {
width: 400px;
display: block;
}
#can1 {
position: absolute;
top: calc( 100vh + 100px);
}
<canvas id='can1' height=224px width=400px></canvas>
<video autobuffer controls autoplay muted=true id='vid1'>
<source id="mp4" src="http://grochtdreis.de/fuer-jsfiddle/video/sintel_trailer-480.mp4" type="video/mp4">
</video>
<br> Above is the Video element.
<br> Below is the Canvas
<br><br><br> Why does the canvas below stop when the video is scrolled out of view
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
【问题讨论】:
标签: javascript html google-chrome html5-canvas html5-video