vue获取视频第一帧
作者:互联网
在实际开发中,比如我们用到了视频,后台只是给我们返回一个地址,我们这边要如何把视频的第一帧显示出来呢
<template>
<div style="margin-top:50px">
<!-- <video :src="videoSrc" id="videoPlay" height="414" width="720" style="margin-top:50px" controls="controls">您的浏览器不支持 video 视屏播放。</video> -->
<video :src="videoSrc" controls style="width:1000px;"></video>
<div>
<img :src="imgSrc">
</div>
<div>
<button @click="cutPicture">
截图
</button>
</div>
<canvas id="myCanvas" width="343" height="200"></canvas>
</div>
</template>
<script>
export default {
data() {
return {
videoSrc:'https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm',
imgSrc:''
}
},
methods: {
//截取当前帧的图片
cutPicture(){
var v = document.querySelector("video");
let canvas = document.getElementById('myCanvas')
var ctx = canvas.getContext('2d');
ctx.drawImage(v, 0, 0, 343, 200);
var oGrayImg = canvas.toDataURL('image/jpeg');
this.imgSrc = oGrayImg
},
}
}
</script>
这边如果我们是使用外部的url就会有这个报错
现象:在使用canvas的toDataURL()方法时,控制台有时会报错:Uncaught DOMException: Failed to execute ‘toDataURL’ on ‘HTMLCanvasElement’: Tainted canvases may not be exported.
原因:这是由于之前由drawImage()向canvas导入的图片跨域而导致的。
标签:视频,canvas,vue,获取,报错,toDataURL,var,video 来源: https://blog.csdn.net/qq_34595425/article/details/116308473