当前位置: 首页 > 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 })})

相关文章:

  • [蓝桥杯]轨道炮
  • 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接口设计哲学
  • VPS做镜像网站/seo优化标题
  • 网站建设详细/seo搜索引擎优化实训
  • 惠州建设局网站/论坛seo设置
  • 网站投放广告怎么做/百度邮箱注册入口
  • 高端定制服装/搜索引擎技术优化
  • 厦门网站建设680/常用的关键词挖掘工具有哪些