详细代码:
Heisenbilin/VideoInCanvas
主要思路:
Canvas中可以使用ctx.drawImage(video, x, y,width,height)来对视频当前帧的图像进行绘制,其中video参数就是HTML5中的video标签。故我们可以通过Canvas的动态效果不断获取video当前画面,渲染到Canvas画布上。并且通过改变video标签的属性,来实现在Canvas中处理视频的一整套效果。可以理解成在Canvas中新建一个播放器,该播放器视频源是video标签创建,播放器的各种方法最终指向对video标签本身属性和方法的改变。而利用Canvas的强大功能,可以进一步进行图像处理、弹幕加载等操作。
Video标签属性和事件:参见:一只熊:Midia下的Video标签与Audio标签属性和事件汇总
第一步:创建video标签
//创建Video标签
video = document.createElement('Video');
video.src = './video.ogv';
video.controls = true;
//将video标签插入dom结点,用于展示原始video。
//首先应该在body中有一个id为videodiv的div结点。
//在实战中不需要插入dom结点(不用添加下面两行语句)就可以使用上面创建的video对象
var videodiv=document.getElementById('videodiv');
videodiv.appendChild(video);
第二步:Canvas中不断绘制v