html5 video截取视频封面图和监听播放状态代码

来源:https://www.sucaihuo.com/js/4314.html 2019-04-21 11:47浏览(2367) 收藏

一款html5 video应用:截取视频封面图和监听播放状态代码,视频截图功能。video标签有个属性poster是用来储存封面图地址的,但需注意先用本地视频,非本地视频会有跨域截取问题,这个得跟后端开发协作处理。
html5 video截取视频封面图和监听播放状态代码
分类:html5 > 视频 难易:中级
查看演示 下载资源 下载积分: 20 积分
关注公众号,免费赠送安装视频教程、环境和学习视频,后面会不断更新。

js代码

<script type="text/javascript">
    // 视频------视频截图 ~~ 视频播放状态 ~~
    const setMedia = function(video, scale = 0.8) {
        // 设置poster属性:(非本地视频资源会有跨域截图问题)
        video.addEventListener('loadeddata', function(e) {
            // 拿到图片
            let canvas = document.createElement('canvas');
            canvas.width = video.videoWidth * scale;
            canvas.height = video.videoHeight * scale;
            canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);
            let src = canvas.toDataURL('image/png');
            // 显示在dom,测试用
            (function(flag = true) {
                if (!flag) {return;}
                let img = document.createElement('img');
                img.src = src;
                document.body.appendChild(img);
            })(0);
            // 设置属性
            video.setAttribute('poster', src);
        });
// -------------------------------------------------------------------------------------
        //检测视频播放状态:
        //播放按钮
        let playBtn =  video.parentNode.childNodes[2].nextSibling;
        //设置状态
        function vidplaySate(e) {
            if (video.paused) {
                video.play();
                playBtn.classList.add('pause');
            } else {
                video.pause();
                playBtn.classList.remove('pause');
            }
        }
        //点击监听
        video.addEventListener('click', vidplaySate, false);
        playBtn.addEventListener('click', vidplaySate, false);
        //结束监听
        video.addEventListener('ended',function () {
            playBtn.classList.remove('pause');
        });
    };
    //视频:
    let videos = document.querySelectorAll('video');
    videos.forEach((video) => {
        setMedia(video);
    });

</script>
评论0
头像

系统已开启自动识别垃圾评论机制,识别到的自动封号,下载出错或者资源有问题请联系全栈客服QQ 1915635791

1 2