当前位置: 首页 > news >正文

解决获取视频第一帧黑屏问题

文章目录

  • 解决获取视频第一帧黑屏问题
    • 核心代码

解决获取视频第一帧黑屏问题

废话不多说,直接上代码:

<script setup>
const status = ref('请点击“添加视频”按钮添加视频')
const videoElement = ref(document.createElement('video'))
const currentImageSource = ref(null)async function getImageByVideo() {videoElement.value.src = 'https://upload.wikimedia.org/wikipedia/commons/transcoded/c/c4/Physicsworks.ogv/Physicsworks.ogv.240p.vp9.webm'videoElement.value.crossOrigin = 'anonymous' // 处理跨域videoElement.value.preload = 'metadata'videoElement.value.muted = truevideoElement.value.playsInline = truestatus.value = '视频加载中...'// 解决封面黑屏问题await new Promise((resolve) => {videoElement.value.addEventListener('loadeddata', resolve, { once: true })})// 设置当前时间确保获取有效帧videoElement.value.currentTime = 0.01// 等待视频跳转到指定时间await new Promise((resolve) => {videoElement.value.addEventListener('seeked', resolve, { once: true })})// 获取视频帧作为封面const canvas = document.createElement('canvas')canvas.width = videoElement.value.videoWidthcanvas.height = videoElement.value.videoHeightconst ctx = canvas.getContext('2d')ctx.drawImage(videoElement.value, 0, 0, canvas.width, canvas.height)// 创建封面图像const img = new Image()img.src = canvas.toDataURL('image/jpeg')img.onload = () => {currentImageSource.value = img}
}
</script>

核心代码

  // 解决封面黑屏问题await new Promise((resolve) => {videoElement.value.addEventListener('loadeddata', resolve, { once: true })})// 设置当前时间确保获取有效帧videoElement.value.currentTime = 0.01// 等待视频跳转到指定时间await new Promise((resolve) => {videoElement.value.addEventListener('seeked', resolve, { once: true })})
http://www.dtcms.com/a/235067.html

相关文章:

  • [蓝桥杯]轨道炮
  • ReadWriteLock(读写锁)和 StampedLock
  • 负载均衡器》》
  • 力扣刷题(第四十九天)
  • 小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo
  • sql_mode
  • Cesium使用glb模型、图片标记来实现实时轨迹
  • 采用轮询的方式实现在线人数
  • PC端直接打印功能(包括两张图片合并功能)
  • NodeJS Koa 后端用户会话管理,JWT, Session,长短Token,本文一次性讲明白
  • evo precision evaluation
  • 【分治法 容斥原理 矩阵快速幂】P6692 出生点|普及+
  • virtualbox 如何虚拟机ip固定
  • DFT测试之TAP/SIB/TDR
  • AudioRelay 0.27.5 手机充当电脑音响
  • Python: 操作 Excel折叠
  • VTK如何让部分单位不可见
  • js树形菜单功能总结
  • excel数据对比找不同:6种方法核对两列数据差异
  • 三十四、面向对象底层逻辑-SpringMVC九大组件之FlashMapManager接口设计哲学
  • 一文学会《使用Auto CAD2020绘制Allegro PCB板框》
  • Excel 表格内批量添加前缀与后缀的实用方法
  • RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
  • cnn卷积神经变体
  • 若依添加添加监听容器配置(删除键,键过期)
  • 什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
  • [BJDCTF2020]Easy MD5 1
  • Excel 模拟分析之单变量求解简单应用
  • redhat系统中删除多余的硬盘
  • 深入解析:为什么 Redis 比 MySQL 快