<mark id="oyrth"></mark>
      <tbody id="oyrth"></tbody>
    1. <tbody id="oyrth"></tbody>
        <menuitem id="oyrth"></menuitem>
      1. js获取video任意时间的画面截图

        2019-4-16 释然 前端及开发文章及欣赏

        如果您想订阅本博客内容,每天自动发到您的邮箱中, 请点这里

        首先就是要把视频加载出来,然后使用canvas.getContext(‘2d’).drawImage(videoElement, 0, 0, canvas.width, canvas.height);获取到当前视频时间的截图,需要不同时间的video视频图,设置video的currentTime(单位秒),然后videoElement这个对象信息会实时更新。

        如果是视频是在阿里云OSS上就更方便了,poster=“http://a-image-demo.oss-cn-qingdao.aliyuncs.com/demo.mp4?x-oss-process=video/snapshot,t_6000,m_fast”

        如果是要获取上传本地视频预览图,可采用下面的方法,但有兼容性问题,目前测试移动端安卓机只有Chrome浏览器支持,微信和QQ浏览器都无法响应本地视频的canplay事件。

        <div contenteditable="true" id="in-box" style="width:1000px;margin: 20px auto;"></div>
        <div style="width:1000px;margin: 20px auto;">        
           <input type="file" name="" accept="video/*" id="upload-ipt">
           <div class="review" id="out-box"></div>
        </div>

        function getVideoImage() {
            var obj_file = document.getElementById("upload-ipt");
            var file = obj_file.files[0];
            var blob = new Blob([file]), // 文件转化成二进制文件
                url = URL.createObjectURL(blob); //转化成url
            if (file && /video/g.test(file.type)) {
                var $video = $('<div><video controls src="' + url + '"></video></div><div>&nbsp;</div>');
                //后面加一个空格div是为了解决在富文本中按Backspace时删除无反应的问题
                $('#in-box').html($video);
                var videoElement = $("video")[0];
                videoElement.addEventListener("canplay", function (_event) {
                    var canvas = document.createElement("canvas");                    
                    canvas.width = videoElement.videoWidth;
                    canvas.height = videoElement.videoHeight;
                    console.log(videoElement.videoWidth)
                    canvas.getContext('2d').drawImage(videoElement, 0, 0, canvas.width, canvas.height);
                    var img = document.createElement("img");
                    img.src = canvas.toDataURL("image/png");
                    $("#out-box").html(img);
                    URL.revokeObjectURL(this.src); // 释放createObjectURL创建的对象
                    console.log("loadedmetadata")
                });
            }else{
                alert("请上传一个视频文件!");
                obj_file.value = ""
            }
        };
        蓝蓝设计www.quanminreliao.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务

        标签: js获取video任意时间的画面截图


        Powered by emlog 京ICP备12006971号-1 sitemap
        杀平特一肖-杀平特一肖不出-杀平特一肖公式