js截取视频第一帧(截取图片不会是黑色的)

场景

最近测试提的bug里有个我做的上传视频的功能,编辑回显的视频封面有时候是黑色的。经排查是在截取视频第一帧时出的问题。

问题

我的电脑是win7系统,测试们的电脑是win10系统,且都是用的chrome浏览器,我的是截图的图片每次都是正常的,但是他们的电脑使用该功能时确实偶尔会出现黑色图片封面的问题。经从网上搜索终于解决了,由于复现不了bug搞了一下午。

解决

最终不知道加的哪行代码起的作用,反正这些代码是起了解决截取视频第一帧图片不会是黑色的问题的。
bash 复制代码
video.setAttribute('crossOrigin', 'anonymous');
video.setAttribute('preload', 'auto');
video.setAttribute('autoplay', true);
video.setAttribute('muted', true);
video.preload = 'auto';
video.autoplay = true;
video.muted = true;
下面附上js截取视频第一帧的完整方法
bash 复制代码
cutPicture(item) {
  let video = document.createElement("video");
  video.style = 'position:fixed; top: 9999px;left:9999px;z-index:-9999'
  video.src = item.location_url
  video.setAttribute('crossOrigin', 'anonymous');
  video.setAttribute('preload', 'auto');
  video.setAttribute('autoplay', true);
  video.setAttribute('muted', true);
  video.preload = 'auto';
  video.autoplay = true;
  video.muted = true;
  // video.currentTime = 1   //截取的视频第一秒作为图片
  video.width = 56
  video.height = 56
  document.body.appendChild(video)
  let oGrayImg=require('@/assets/images/icon/txt.png');
  return new Promise((resolve,reject)=>{
    video.onloadeddata = function () {
      let canvas = document.createElement('canvas')
      canvas.width = 56
      canvas.height = 56
      canvas.getContext('2d').drawImage(video, 0, 0, video.clientWidth, video.clientHeight)
      oGrayImg = canvas.toDataURL('image/jpeg');
      this.remove()
      resolve(oGrayImg)
    }
  })
}
相关推荐
weixin_44347851几秒前
flutter组件学习之Flex / Expanded弹性布局组件
javascript·学习·flutter
LawrenceLan1 分钟前
38.Flutter 零基础入门(三十八):网络请求实战 http、dio —— 获取列表与刷新 UI
开发语言·前端·flutter·dart
xmRao1 分钟前
Qt+FFmpeg 实现摄像头采集并录制 YUV 格式视频
qt·ffmpeg·音视频
kisshuan1239620 分钟前
[特殊字符] RollingDepth:单目视频深度估计算法解析
算法·音视频
学术 学术 Fun21 分钟前
图生视频还带声音?我把LTX 2.3塞进了自己的显卡里
音视频
csdn_aspnet22 分钟前
Asp.Net Core 10.0 中的 Blazor 增强功能
前端·后端·asp.net·blazor·.net10
SuperEugene23 分钟前
Excel 上传解析 + 导出实战:Vue+xlsx 避坑指南|Vue生态精选
前端·javascript·vue.js·excel·xlsx·vxetable
小马_xiaoen28 分钟前
常规优化已用尽?小程序体积深层次优化实战!!!
前端·小程序·uniapp
Highcharts.js28 分钟前
使用Highcharts创建流图(Stream Graph)指南|流动数据的可视化图表与数据艺术表达
javascript·信息可视化·数据可视化·highcharts·可视化图表·流图·stream graph
Lee_Yu_Fan31 分钟前
修改ElementUI 框架中 TreeSelect树形选择的Icon
前端·elementui