uniapp使用视频地址获取视频封面

news2024/9/21 4:31:21

很多时候我们都需要使用视频的第一帧当作视频的封面,今天我们从uni-app的安卓app这个环境来实现下这个需求。

uniapp 安卓APP端(ios未测试)

方法:使用renderjs实现对DOM元素的操作,创建video元素获取视频转第一帧,使用canvas转为base64格式进行展示

<template>
	<video :src="src" :poster="poster" :change:src="video.setPoster"></video>
</template>

<script>
	export default {
		data() {
			return {
				poster: '',
				src: 'https://oss-p56.xpccdn.com/prod/footage/preview/xpc/HHMFcJlnHMS3TBj.mp4'
			}
		},
		methods: {
			getPoster(poster) {
				this.poster = poster
			}
		}
	}
</script>
<script lang="renderjs" module="video">
	export default {
		methods: {
			setPoster(newV, oldV, ownerInstance) {
				let video = document.createElement("video");
				video.setAttribute('crossOrigin', 'anonymous'); //处理跨域
				video.setAttribute('src', newV);
				video.setAttribute('width', 1000);
				video.setAttribute('height', 500);
				// 表示可以下载整个视频文件,即使用户不希望使用它。这样才能获取到视频文件
				video.setAttribute('preload', 'auto');
				// loadeddata 事件在媒体当前播放位置的视频帧(通常是第一帧)加载完成后触发。
				video.addEventListener('loadeddata', function() {
					let canvas = document.createElement("canvas"),
					width = video.width, //canvas的尺寸和图片一样
					height = video.height;
					canvas.width = width;
					canvas.height = height;
					canvas.getContext("2d").drawImage(video, 0, 0, width, height); //绘制canvas
					let poster = canvas.toDataURL('image/jpeg'); //转换为base64
					ownerInstance.callMethod('getPoster', poster)
				});
			}
		}
	}
</script>

展示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/821723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二十三种设计模式第二十一篇--解释器模式

解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为设计模式&#xff0c;它用于定义一种语言的语法结构和解释器&#xff0c;使得可以解释并执行特定的语法规则。该模式可以将复杂的语言表达式分解为更小的语法单元&#xff0c;并定义其解释过程。 解释器模式的…

Pandas操作Excel

Pandas 是 Python 语言的一个扩展程序库&#xff0c;用于数据分析。 菜鸟教程&#xff1a;https://www.runoob.com/pandas/pandas-tutorial.html 读取Excel pd.read_excel(path,sheet_name,header) path&#xff1a;excel文件路径sheet_name&#xff1a;读取的sheet&#xff0…

下载的谷歌模型如何转为3dtiles

收费工具&#xff0c;学生党勿扰 收费金额1000元 已经购买过工具的大佬&#xff0c;可以免费更新 1 概述 上个月&#xff0c;写了一篇<<谷歌地图模型自动下载>>的文章&#xff0c;效果还不错&#xff0c;能够帮到一些同学。 但是&#xff0c;随着谷歌模型下载的越…

docker 安装 字体文件

先说一下我当前的 场景 及 环境&#xff0c;这样同学们可以先评估本篇文章是否有帮助。 环境&#xff1a; dockerphp8.1-fpmwindows 之所以有 php&#xff0c;是因为这个功能是使用 php 开发的&#xff0c;其他语言的同学&#xff0c;如果也有使用到 字体文件&#xff0c;那么…

MQ面试题3

1、讲一讲Kafka与RocketMQ中存储设计的异同&#xff1f; Kafka 中文件的布局是以 Topic/partition &#xff0c;每一个分区一个物理文件夹&#xff0c;在分区文件级别实现文件顺序写&#xff0c;如果一个Kafka集群中拥有成百上千个主题&#xff0c;每一个主题拥有上百个分区&am…

阿里13年员工自爆薪酬并坦言:虽然失业但还是赢麻了...

每月发薪资的那一天&#xff0c;是打工人最开心和盼望的日子&#xff0c;看到工资条&#xff0c;就会觉得之前辛苦的付出没有白费。 但是你期待过未来薪资上限是多少吗&#xff1f;你打算如何过这一生呢&#xff1f; 最近看到一个很吸引我的帖子&#xff1a;一85年阿里员工薪…

记录一次很傻逼的bug,希望大家引以为戒!

最近准备程序上线&#xff0c;测试上数据库连接是正常的&#xff0c;但是到正式上&#xff0c;数据库连接就一直报错&#xff0c;报错如下&#xff1a; 根据报错信息的提示&#xff0c;就是没有识别到url&#xff0c;但是因为正式服务器之前发布过其他的项目&#xff0c;是可以…

棕榈酰三肽-38——对额间纹,鱼尾纹,抬头纹和颈纹非常有效

简介 棕榈酰三肽-38由三个氨基酸组成&#xff0c;是一种双氧化的脂肽。这种肽的灵感源自于天然存在于胶原蛋白VI和层粘连蛋白中的一种三肽。 它可以在需要的地方&#xff0c;从内部重建肌肤&#xff0c;使皱纹平滑皮肤得到舒缓&#xff0c;尤其对额间纹&#xff0c;鱼尾纹&…

AI写作技巧,用ChatGPT写自媒体爆文的小技巧

Hi~我是专注于AI技术教程和项目实战的赤辰。 对于新手来说&#xff0c;要写出一篇引人入胜的自媒体文章并不容易&#xff0c;虽然ChatGPT可以帮我们完成写作过程的各个部分&#xff0c;但是&#xff0c;ChatGPT其实也并不能仅凭一个思路和一个主题就直接生成高质量的内容&…

Java 异常处理以及如何捕获和处理多个异常

捕捉和处理异常 在Java中&#xff0c;我们使用异常处理程序组件try&#xff0c;catch和finally块来处理异常。 为了捕获和处理异常&#xff0c;我们将try...catch...finally代码块放置在可能产生异常的代码周围。finally块是可选的。 try...catch...finally的语法为&#xf…

重学C++系列之STL库

一、什么是STL库 STL是“Standard Template Library”的缩写&#xff0c;中文翻译为“标准模板库”。CSTL是一套功能强大的C模板类&#xff0c;提供了通用的模板类和函数&#xff0c;这些模板类和函数可以实现多种流行和常用的算法和数据结构&#xff0c;如字符串操作、链表、队…

mybatisJava对象、list和json转换

1. 参考mybatis-plus mybatis Java对象、list和json转换 网上好多不靠谱&#xff0c;参考mybatis-plus中TableField&#xff0c;mybatis中自定义实现 这样不需要对象中属性字符串接收&#xff0c;保存到表中&#xff0c;都是转义字符&#xff0c;使用时还要手动转换为对象或者…

【UI自动化测试】Jenkins配置

前一段时间帮助团队搭建了UI自动化环境&#xff0c;这里将Jenkins环境的一些配置分享给大家。 背景&#xff1a; 团队下半年的目标之一是实现自动化测试&#xff0c;这里要吐槽一下&#xff0c;之前开发的测试平台了&#xff0c;最初的目的是用来做接口自动化测试和性能测试&…

棱镜七彩成为“软件供应链安全推进工作组”首批成员单位

2023年7月29日&#xff0c;由基础软件质量控制与技术评价工业和信息化部重点实验室&#xff08;以下简称“实验室”&#xff09;举办的软件供应链安全研讨会暨软件供应链安全推进工作组成立会议在京成功召开。 会上&#xff0c;实验室委托中国软件评测中心&#xff08;工业和信…

助力质检维护,基于超轻量级分割模型ege-unet开发构建水泥基建裂缝分割识别系统

在前面的博文&#xff1a; 《参数量仅有50KB的超轻量级unet变种网络egeunet【参数和计算量降低494和160倍】医疗图像分割实践》 初步学习和实践了最新的超轻量级的unet变种网络在医疗图像领域内的表现&#xff0c;在上文中我们就说过会后续考虑将该网络模型应用于实际的生产业…

GNN+RA 文献阅读-- GNN对RA的建模

简述&#xff1a;主要是几篇 如何利用GNN 对 资源分配进行建模的paper&#xff0c;【1】【2】都是对无线链路建模&#xff0c;【3】比较有参考性&#xff0c;【4】偏于RL&#xff0c;对GNN表述模糊。 用GNN建模网络的思路&#xff1a; 1.Graph 是有向图还是无向图&#xff1f…

HarmonyOS 开发基础(二)组件拼凑简单登录页面

一、简单登录页面 Entry Component /* 组件可以基于struct实现&#xff0c;组件不能有继承关系&#xff0c;struct可以比class更加快速的创建和销毁。*/ struct Index {State message: string Hello Worldbuild() {// https://developer.harmonyos.com/cn/docs/documentation/…

万应低代码 7 月重点更新内容速递

速览版 详情版 低代码开发能力提升 业务逻辑 业务逻辑是什么&#xff1f; 在万应低代码中&#xff0c;「业务逻辑」指的是应用程序中的核心规则和功能&#xff0c;它决定了数据如何被处理和操作。就像搭积木一样&#xff0c;业务逻辑告诉计算机在特定情况下如何运行和响应。比…

【C语言】操作符----详解

&#x1f341; 博客主页:江池俊的博客 &#x1f4ab;收录专栏&#xff1a;C语言——探索高效编程的基石 &#x1f4bb; 其他专栏&#xff1a;数据结构探索 &#x1f4a1;代码仓库&#xff1a;江池俊的代码仓库 &#x1f3aa; 社区&#xff1a;C/C之家社区 &#x1f341; 如果觉…

【投资笔记】美股要变天了?

美股上涨&#xff0c;但是风险溢价创新低 7月&#xff0c;标普和纳指创两年依赖首次5个月连涨&#xff0c;但是风险溢价创二十年新低&#xff1b;https://asset.wsj.net/dynamic-insets/charts/cdc_5387e4742a1ca607d6defc38_embed.html 如果这个指标为正&#xff0c;说明投资…