【发布时间】:2013-12-04 17:09:50
【问题描述】:
是否可以添加一个循环播放到 HTML5 画布的背景视频?这就是我目前所做的工作,只是想添加一个可以播放到背景的简单视频。我可以使用 video 标签将视频添加到 HTML,但希望它在画布本身上播放。
<canvas id="ex1" width="525" height="200" style="border: 5px solid black;" ></canvas>
<p id="text"> Increase/Decrease Speed</p>
<input type="button" value="+" id="btnAdd">
<input type="button" value="-" id="btnSub">
<script>
var x = 0;
var y = 15;
var speed = 10;
var isRight = true;
document.getElementById('text').innerText = speed;
document.getElementById('btnAdd').addEventListener('click', function (event) {
if (isRight) speed++;
else speed--;
document.getElementById('text').innerText = speed;
});
document.getElementById('btnSub').addEventListener('click', function (event) {
if (isRight) speed--;
else speed++;
document.getElementById('text').innerText = speed;
});
function animate() {
reqAnimFrame = window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame;
reqAnimFrame(animate);
x += speed;
if (x <= 0 || x >= 475) {
speed = -speed;
isRight = !isRight;
}
document.getElementById('text').innerText = speed;
draw();
}
function draw() {
var canvas = document.getElementById("ex1");
var context = canvas.getContext("2d");
context.clearRect(0, 0, 525, 200);
context.fillStyle = "#ff00ff";
context.fillRect(x, y, 40, 40);
}
animate();
</script>
【问题讨论】:
-
基本过程是创建一个视频元素并用 CSS 隐藏它,然后使用画布上下文的 drawImage 方法在动画循环中将视频绘制到画布上。
-
我在发布的代码中没有看到任何与视频相关的内容?
标签: javascript html canvas