移动端视频上传预览图实现

做一个webapp,用的input type=file选择视频,然后在页面上预览,再上传,在网上有搜到

   var objectURL = URL.createObjectURL(this.files[0]);
    $('.previewVideo').html('<video src="' +
                objectURL +
                '" controls></video>');
    setTimeout(function () {
         var scale = 0.25,
                video = $('video')[0],
                canvas = document.createElement("canvas"),
                canvasFill = canvas.getContext('2d');
            canvas.width = video.videoWidth * scale;
            canvas.height = video.videoHeight * scale;
            canvasFill.drawImage(video, 0, 0, canvas.width, canvas.height);
            var src = canvas.toDataURL("image/jpeg");
            $('.previewImg').html('<img id="imgSmallView" src="' + src + '" alt="预览图" />');
    }, 500);
  
  亲测在pc仿移动端调试是可以实现视频缩略图的
  

clipboard.png
但是在手机上就不可以,

clipboard.png
有什么解决办法嘛,有在网上看到说是用html2canvas获取截图,不知道可行性怎么样?

阅读 5.2k
2 个回答

我猜是 移动端 视频还没加载完,所以你截不到
监听 video 开始播放的事件,然后再处理截图

video.addEventListener('playing', function(){ /* ... */ });

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题