canvas在移动端获取视频的第一帧画面是黑屏
在pc端没有问题,
在移动端第一帧显示黑屏代码如下
(function() {
"use strict";//严格模式
var video;//video标签
var scale = 0.8;//第一帧图片与源视频的比例
video = $("#video").get(0);//赋值标签
console.log($("#video"))
video.addEventListener("loadeddata", function () {//加载完成事件,调用函数
var canvas = document.createElement("canvas");//canvas画布
canvas.width = video.videoWidth * scale;
canvas.height = video.videoHeight * scale;
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);//画图
var imgsrc=canvas.toDataURL("image/png");
video.setAttribute("poster",imgsrc);
//关键一步 —— 设置标签的 poster 属性的值为 base64 编译过后的canvas绘图。
})
}())
相关推荐
Canvas获取视频第一帧缩略图的实现
记录下一个疑问,最近在重新看canvas做点Demo这样,时间是写在2019年11月5日,以后要是没有这个问题了,以W3C更新的为标准,这个只是参考 尝试着在canvas中显示视频第一帧的时候碰上的问题:在Chrome中,用 video.addEventLisener(loadeddata,func)、 video.onloadeddata = func无法在函数中获取到 未预加载的视频的第一帧的图片。同样的代码在Firefox中 未预加载的视频可以获取到第一帧,并且能够渲染到canvas中。以下都是不进行预加载的情况下运行的。 要是不能运行了就在评论里说下,我是从写的一个Demo里截下来
javascript截取video视频第一帧作为封面方案
javascript截取video视频的第一帧作为封面,写在前边:因为项目是用vue.js框架实现,所以以下代码是vue.js语法。首先,看一下Dom元素。
移动端视频播放方案
解决办法 :目前使用了三种办法来播放视频,分别针对微信内置浏览器(不分ios和android)、ios系统下的其他浏览器和安卓系统下的其他浏览器。1、微信内置浏览器微信浏览器可以直接使用video标签来播放视频,ios端和安卓端都可以适配。主要是通过微信内置的h5同层播放器来拜托浏览器对video标签的挟持,从而实现自定义video标签。代码如下:2、ios系统ios系统下的其他浏览器,需要使用canvas来不断绘制出video视频,再放到页面中去,这样就可以避免video标签被浏览器挟持的问题。
canvas 录制视频和播放
插件描述:canvas 录制视频和播放。 参考实例:http://www.jq22.com/jquery-info6133
html5canvas播放视频
html5 canvas 播放视频html5 canvas 播放视频


