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

网站建设咨询有客诚信网站建设咨询足球比赛直播间在线观看

网站建设咨询有客诚信网站建设咨询,足球比赛直播间在线观看,wordpress 微商城模板,视频网站建站费用flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用 需求(实现的效果)功能实现htmlcssjs 需求(实现的效果) 批量显示视频,后端若返回有imgUrl,则直接显示图1, 若无&#xf…

flv视频格式批量截取封面图(不占内存版)--其他视频格式也通用

  • 需求(实现的效果)
  • 功能实现
    • html
    • css
    • js

需求(实现的效果)

批量显示视频,后端若返回有imgUrl,则直接显示图1,
若无,则需要根据视频地址自己截取,截取中显示图2,
截取过程中如图3,截取完直接返回图片信息,如图1格式,未返回的仍显示加载动画,如图2

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

功能实现

需要使用插件播放、截取flv格式视频。当前使用的是mpegts.js
具体使用可移步 vue使用mpegts.js教程

html

<div:key="ind"v-for="(ite, ind) in objects"class="description-content"><divv-if="ite.fileUrl"class="imgurlExit"><!-- 显示图片封面背景 --><imgv-if="ite.imgUrl":src="ite.imgUrl"class="descriptionImg"/><!-- 无图片、纯黑背景 --><divclass="descriptionImg"v-else></div><!-- 播放图标 --><a-icontype="play-circle"class="centerIcon"v-if="ite.imgUrl"/><!-- 加载动画 --><imgsrc="@/assets/images/initImg.gif"class="centerIcon"v-else/></div><divclass="descriptionImg"v-else>未抓取到视频</div></div>

css

   .description-content {width: 220px;margin: 0 20px;margin-top: 20px;.imgurlExit {position: relative;height: 180px;.centerIcon {position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);color: #fff;font-size: 40px;}}.descriptionImg {width: 220px;height: 180px;background: #000;color: #fff;font-weight: 800;text-align: center;line-height: 180px;border-radius: 10px;}}

js

mpegts.js具体使用可移步 vue使用mpegts.js教程

import mpegts from "mpegts.js";// 获取数据时进行判断 item.fileUrl存在且item.imgUrl不存在时。生成图片信息并返回更新数据async getData() {const res = await getList({});if (res.success) {this.objects = res.data; //objects 为data中定义的数据this.$nextTick(() => {this.objects.map((item) => {if (item.fileUrl && !item.imgUrl) {this.getImage(item.fileUrl).then((res) => {item.imgUrl = res;});}});});}},// 获取视频的图片getImage(url) {return new Promise((resolve, reject) => {const extension = url.split("."); //获取类型const videoElement = document.createElement("video");videoElement.muted = true; // 静音videoElement.autoplay = true; // 自动播放if (mpegts.isSupported()) {// mpegts 具体用法可移步首页教程const flvPlayer = mpegts.createPlayer({type: extension[extension.length - 1],url,isLive: true,isAutoPlay: true,isContinue: true,lazyLoad: true,hasAudio: false,},{enableWorker: true,enableStashBuffer: false,stashInitialSize: 128,});flvPlayer.attachMediaElement(videoElement);flvPlayer.load(); //加载setTimeout(() => {flvPlayer.play().then(() => {this.destory(flvPlayer);}).catch((err) => {this.destory(flvPlayer);console.log("err", err);});});}// 监听视频数据加载事件videoElement.addEventListener("loadeddata", function () {// 播放及暂停const canvasElement = document.createElement("canvas");const ctx = canvasElement.getContext("2d");canvasElement.width = 220;canvasElement.height = 180;// 绘制当前帧到 canvasif (ctx) {ctx.drawImage(videoElement, 0, 0, canvasElement.width, canvasElement.height);}const imageDataUrl = canvasElement.toDataURL();resolve(imageDataUrl);videoElement.pause();// 移除video元素 注 document.createElemet创建的元素需要挂载到具体的dom才可以进行删除document.body.appendChild(videoElement);document.body.appendChild(canvasElement);document.body.removeChild(videoElement);document.body.removeChild(canvasElement);});});}, // 销毁 mpegts 对象destory(player) {if (player) {try {player.pause();player.unload();player.detachMediaElement();player.destroy();player = null;} catch (e) {// console.log(e);}}},
http://www.yayakq.cn/news/678830/

相关文章:

  • 网站如何做404页面建设培训网站
  • php网站开发软件外贸访问国外网站
  • php网站是什么信用体系建设网站维运工作制度
  • 做二手货车网站做网站收获了什么
  • 2024免费推广网站塑胶原料东莞网站建设
  • 公司网站建设需要资质南阳网站排名优化公司
  • 文化建设网站wordpress 每页 关高
  • 网站备案要关站吗河南网站优化哪家好
  • 电子商务网站规划、电子商务网站建设网站开发运营策划案
  • 公司想做网站跳转网站怎么做的
  • 网站数据库建表免费做游戏小程序的网站
  • 建设银行社保卡查询网站动画视频怎么制作出来的
  • 网站做外链好不好商务网站运营与管理
  • python+视频播放网站开发安卓studio制作一个简单app
  • 仿站多少钱一套泰兴网站优化
  • 重型机械网站开发模版wordpress插件漏洞扫描
  • 河南睢县筑宇建设网站js网站模板免费下载
  • 宁波网站建设方式在线培训系统平台
  • 网站有域名用注册商标吗网络推广培训论坛
  • 如何做企业网站的更新域名空间商
  • 新闻类wordpress模板下载广州网站优化工具
  • 免费搭建网站的软件榆林 网站建设
  • 常德市网站建设做个商城网站多少钱
  • 网站布局怎么设计网站开发与网站设计区别
  • 网站设计与开发实例陕西网络推广公司
  • 何炅做的网站广告学设计师需要学历吗
  • wordpress调用目录列表seo自学网官方
  • 西部数码做的网站打不开python wordpress采集
  • 微网站制作工具百度只更新快照不收录网站
  • 网站怎么做百度快照单纯做网站的公司