uniapp 中app通过视频链接获取封面

此方法使用了renderjs,可配合查看

首先添加:vsrc=“vsrc” :change:vsrc="renderScript.vimghuode"加在任意view标签上,意为当vsrc值发生改变时调用renderScript下的vimghuode方法,即获取封面方法
在这里插入图片描述
加个点击事件 @tap="renderScript.fasong_vimg"用于从renderjs返回封面图链接
在这里插入图片描述

使用步骤:1.复制下方所用方法与参数并观看上方标黑文字2.调用fengmian方法参数为视频链接3.通过点击事件获取返回的封面图链接。

renderjs部分

<script module="renderScript" lang="renderjs">
	export default {
		data() {
			return {
				test:""
			}
		},
		mounted() {
			
		},
		methods: {
			//通过视频获得缩略图
			vimghuode(newValue, oldValue, ownerVm, vm){
				if(newValue==null)
					return;
				let that=this;
				// 在缓存中创建video标签
				let video = document.createElement("VIDEO")
				// 添加一个静音的属性,否则自动播放会有声音
				// video.setAttribute('muted', true)
				video.muted=true
				// 通过setAttribute给video dom元素添加自动播放的属性,因为视频播放才能获取封面图
				video.autoplay=true;
				//允许跨域访问
				video.crossOrigin='anonymous';
				// 上面我们只是创建了video标签,视频播放需要内部的source的标签,scr为播放源
				video.innerHTML = '<source src=' + newValue.src + ' type="audio/mp4">'
				// 再创建canvas画布标签
				let canvas = document.createElement('canvas');
				let ctx = canvas.getContext('2d');
				// video注册canplay自动播放事件
				video.addEventListener('canplay', function() {
					// 创建画布的宽高属性节点,就是图片的大小,单位PX
					let anw = document.createAttribute("width");
					anw.nodeValue = newValue.width;
					let anh = document.createAttribute("height");
					anh.nodeValue = newValue.height;
					canvas.setAttributeNode(anw);
					canvas.setAttributeNode(anh);
					// 画布渲染
					ctx.drawImage(video, 0, 0, newValue.width, newValue.height);
					// 生成图片
					that.test = canvas.toDataURL('image/png') // 这就是封面图片的base64编码
					// 视频结束播放的事件
					video.pause()
				}, false)
			},
			//此方法用户在template中手动操作触发
			fasong_vimg(event, ownerInstance){
				ownerInstance.callMethod('jiehsou_vimg', {
					test: this.test
				})
			}
		}
	}
</script>

普通vue部分
其中fengmian方法获取封面图传入参数视频链接即可

<script>
	export default {
		data() {
			return {
				vsrc:null//用于renderjs通信
			}
		},
		onLoad() {
		},
		methods: {
			jiehsou_vimg(data){
				//data.test为返回的封面图
			},
			//视频封面图
			fengmian(lianjie){
				uni.getVideoInfo({//视频详细信息
					src:lianjie,
					success(e) {
						let jihe={};
						jihe.src=lianjie;
						let h,w;
						if(e.orientation=="left"||e.orientation=="right"||e.orientation=="left-mirrored"||e.orientation=="right-mirrored"){
							h=e.width;
							w=e.height;
						}else{
							w=e.width;
							h=e.height;
						}
						
						jihe.width=w;
						jihe.height=h;						

						that.vsrc=jihe;//因change调用renderScript.vimghuode方法获取封面
					},
					fail(e) {
						console.log(e);
					}
				})
			}
			
		}
	}
</script>

其中画布高宽由getVideoInfo获得,有需求或视频旋转判断可自行修改
效果图
在这里插入图片描述

uniapp开发中,使用腾讯地图获取位置信息可以通过以下步骤实现: 1. **注册腾讯地图开发者账号**:首先,你需要在腾讯地图开放平台注册一个账号,并创建一个应用以获取API密钥(Key)。 2. **安装腾讯地图SDK**:根据你的项目需求,安装腾讯地图的SDK。uniapp支持通过插件市场安装第三方插件,你可以在uniapp插件市场中搜索“腾讯地图”并安装相应的插件。 3. **配置API密钥**:在项目的配置文件中添加腾讯地图的API密钥。找到`manifest.json`文件,在`App模块配置`中添加腾讯地图的API密钥。 4. **编写代码获取位置信息**:在你的页面或组件中编写代码,使用腾讯地图SDK获取位置信息。以下是一个简单的示例代码: ```javascript // 在页面中引入腾讯地图SDK const QQMapWX = require('path/to/qqmap-wx-jssdk.min.js'); // 实例化API核心类 const qqmapsdk = new QQMapWX({ key: 'YOUR_TENCENT_MAP_API_KEY' }); export default { data() { return { location: {} }; }, methods: { getLocation() { uni.getLocation({ type: 'wgs84', success: (res) => { const latitude = res.latitude; const longitude = res.longitude; // 使用腾讯地图SDK进行逆地理编码 qqmapsdk.reverseGeocoder({ location: { latitude: latitude, longitude: longitude }, success: (response) => { this.location = response.result; }, fail: (error) => { console.error(error); } }); }, fail: (error) => { console.error(error); } }); } }, onLoad() { this.getLocation(); } }; ``` 5. **处理权限问题**:确保在项目中正确处理了获取位置的权限问题。在`manifest.json`中配置好相关的权限,并在用户首次使用应用时请求权限。 通过以上步骤,你可以在uniapp开发的应用中使用腾讯地图获取位置信息。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翎墨袅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值