canvas获取视频封面及个别电脑获取到空图

读取视频封面:

csharp 复制代码
        let video = document.createElement("video");
        video.src = videosrc;
        video.currentTime= 10 // 可能出现黑屏,从10帧
        video.muted = true; // 解决个别电脑获取到空图
        video.autoplay = true; // 解决个别电脑获取到空图
        video.preload = true; // 解决个别电脑获取到空图
        video.addEventListener('loadeddata', async () => {
          video.pause();
          var canvas = document.createElement('canvas')
          canvas.width = video.videoWidth
          canvas.height = video.videoHeight
          canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height)
          const cover = canvas.toDataURL('image/png')
           console.log('图片base64是:',cover)
          video.remove();
    }}

base64转file:

csharp 复制代码
const convertFile = base64 => {
  let fileArray = base64.split(','),
    fileType = fileArray[0].match(/:(.*?);/)[1],
    bstr = atob(fileArray[1]),
    n = bstr.length,
    u8arr = new Uint8Array(n)
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n)
  }
  return new File([u8arr], '文件名', { type: fileType })
}

下载:

csharp 复制代码
const buttonClick = (base64) => {
  let file = convertFile(base64)
  const node = document.createElement('a')
  node.href = URL.createObjectURL(file)
  node.download = file.name
  node.click()
  URL.revokeObjectURL(node.href)
  document.body.appendChild(node)
  document.body.removeChild(node)
}
相关推荐
Penge6662 分钟前
React 事件处理:bind(this) 原理与实际开发常用写法
前端
ZhengEnCi13 分钟前
小白用 AI 做官网完全指南:不用框架的六格清单,双击就能打开
前端·html·ai编程
zhanlang021728 分钟前
HTML 零基础入门到企业实战【第五章 5.2】图片路径精讲:绝对路径、相对路径、网络路径(新手必踩坑点)
前端·html
夕水1 小时前
我用trae重构了ew-color-picker,一个插件化架构的现代颜色选择器
前端·javascript·开源
Penge6661 小时前
React JSX 核心语法:从入门到业务开发实战
前端
zhanlang02171 小时前
HTML 零基础入门到企业实战全套教程【第五章 5.5 综合案例:图文影音展示页面开发】
前端·html
zhanlang02172 小时前
HTML 零基础入门到企业实战全套教程【连载 5.3】audio、video 音频视频标签|兼容格式、自动播放踩坑、企业规范
前端·html
qq_406981032 小时前
c++ lamda(三)Lambda表达式
java·前端·c++
zhanlang02172 小时前
HTML 零基础入门到企业实战【第五章 5.4】内嵌网页 iframe 标签:嵌入网页、视频、地图实战
前端·html·音视频
TengTaiTech2 小时前
头戴耳机做运动相机外接麦:一颗麦克风同时服务蓝牙通话与 3.5mm 录音的底层重构
数码相机·音视频·蓝牙·qcc