首页 > 其他分享 >前端截取视频第一帧图 vue2+elementui

前端截取视频第一帧图 vue2+elementui

时间:2024-07-30 09:50:03浏览次数:13  
标签:视频 canvas const elementui URL 截取 video vue2 videoElement

截取方法

 extractVideoFrame(video){
      // 创建视频元素
      const videoElement = document.createElement('video');
      videoElement.preload = 'metadata';
      videoElement.src = URL.createObjectURL(video);

      // 等待视频元素加载完成
      return new Promise((resolve, reject) => {
        videoElement.onloadedmetadata = () => {
 // 设置视频时间为第一秒
          videoElement.currentTime = 1;
          // 捕获当前帧为图片
          videoElement.addEventListener('seeked', () => {
            const canvas = document.createElement('canvas');
 canvas.width = videoElement.videoWidth;
            canvas.height = videoElement.videoHeight;
            canvas.getContext('2d').drawImage(videoElement, 0, 0, canvas.width, canvas.height);
const imageUrl = canvas.toDataURL('image/png');
            resolve(imageUrl);
            URL.revokeObjectURL(videoElement.src); // 释放URL对象
 });
        };
        videoElement.onerror = reject;
      });
    },

调用在
 handleUploadSuccess(response, file, fileList){
      // 取视频第一帧作为预览
      this.extractVideoFrame(file.raw).then(previewUrl => {
        //previewUrl为视频第一帧图片
      });
    },

标签:视频,canvas,const,elementui,URL,截取,video,vue2,videoElement
From: https://www.cnblogs.com/zmldz/p/18331601

相关文章

  • js vue3 vue2鼠标单击事件复制指定内容到粘贴板
    借助原生JavaScript的 navigator.clipboard.writeText() 方法来时(要求页面是在用户交互的上下文中,比如点击事件处理程序中调用)如:点击列表的复制按钮,得到指定列(data)的值到粘贴板<template><div><button@click="click">复制文本</button></div></templ......
  • vue2 - 详细实现“视频切片/分段加载“播放大视频,解决视频过大加载播放缓慢问题,vue处
    效果图在vue2、nuxt2项目开发中,详解vue视频分片加载,所谓“边播放边加载”,利用axios分段请求后端服务器每次只拿一小段视频慢慢缓存播放,让非常大的视频(例如电影,很长的视频播放太慢)流畅播放,vue2实现将video视频进行切片网络请求加载提升视频加载速度,详细解决视频分段下载......
  • vue2和vue3的区别
    总结:1、vue2的双向数据绑定利用了es5的apiobject.definepropert(),而vue3中使用了es6的apiproxy;2、vue3支持碎片,而vue2不支持;3、vue2使用选项类型api,而vue3使用合成型api;4、建立数据,vue2把数据放入data属性中,而vue3使用setup()方法;5、vue3有teleport组件,vue2没有。1......
  • 「Vue2+Vue3」 的 62 个知识点
    1、Vue2和Vue3的区别?vue3对于typescript的支持更加的好vue3的CompositionAPI,vue2的OptionAPIvue3打包使用tree-shaking策略,体积更小vue3在模板编译的阶段会有静态节点提升,运行时性能更好vue3使用Proxy进行响应式处理,而vue2使用了definePropert......
  • v-for内所有div中的内容(多行多列)全部自适应自动左右滚动(适用于表格)vue2
    html部分<divclass="table_content"><divv-for="(item,outerIndex)intable2Data":key="outerIndex"style="display:flex"><divstyle="width:......
  • Vue2 e-table 合并第一列单元格
    需求:名字一样的合并单元格前端思路:方法一//处理表格数据,将同一名称的数据进行组合//tableData是请求后端返回的List<对象>handleData(tableData){debuggerconstkeys=[]//唯一值的数组tableData.forEach((item,index)=>{if(!k......
  • 后端开发工程师vue2初识的学习
    博客主页:音符犹如代码系列专栏:JavaWeb关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......
  • elementui中实现loding实现局部加载,以el-dialog为例
    效果 封装loading加载(也可以直接使用,封装为了方便多次调用)组件定义:loadDiy.jsimport{Loading}from"element-ui";exportconstservicesLoading=(node,str,lock)=>{returnLoading.service({target:document.querySelector(node),//loading需要覆盖的DO......
  • VXE-Table+antvX6+element+DataV+vue2边框开发流程识别配置
    本demo为了实现自定义流程保存回显新增效果,复制即用,模拟数据太长没在代码中体现,需要可以找我拿vxe-table官方连接:VxeTablev4antVX6连接:https://x6.antv.antgroup.com/element连接:Element-Theworld'smostpopularVueUIframeworkDataV连接:DataV效果图H......
  • 使用 WSL 时截取 Windows 桌面的屏幕截图
    我主要使用Windows,其中运行WSL2。因此,从子系统中运行的python脚本中,我想截取Windows监视器上的所有内容,就像这样简单:v1importmssimportosos.environ['DISPLAY']=':0'withmss.mss()assct:sct.shot()这只会给出“分段错误”错误并且没有图像。因......