其他分享
首页 > 其他分享> > vue获取视频第一帧

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