mpvue云开发小程序之视频插件

首先,你要是个人开发,想要使用小程序视频插件,那么你可以关掉,把你的插件代码删掉了。因为腾大爷不支持个人开发文娱类小程序,而且申请插件时不会提醒你。
在这里插入图片描述

以下就开始记录一下云开发-视频插件

添加插件

打开微信公众平台,设置中直接添加
在这里插入图片描述

点击查看详情就能看到官方的文档,写的很屎,下面是地址
https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wxa75efa648b60994b&token=599835817&lang=zh_CN

引入包代码

1、app.json

// 在app.json里面引入插件,注意插件版本号填最新的版本号
"plugins": {
  "tencentvideo": {
   		version: "1.3.6",
        provider: "wxa75efa648b60994b"
  }
}

2、所用视频插件的页面中

这里会有一个问题,就是mpvue可以在vue页面中使用config,或者在main.js中添加json,结果悲剧的发现不会自主生成对应的json文件,所以需要手动建立一个json文件

// 在你们的json里面插入
"usingComponents": {
  "txv-video": "plugin://tencentvideo/video"
}

tencentvideo这个是自己起的名字,可以随便,但是需要在json中对应,否则不会生效

3、加入视频插件标签

// vid 可使用vid="{{vid}}" wx:if="{{vid}}" 的方式应用data变量,要注意确保vid存在
// playerid必须要全局唯一,可以设置为vid
<txv-video vid="e0354z3cqjp" playerid="txv1"></txv-video>

在这里插入图片描述

  • playerid必须要全局唯一,可以设置为vid
  • 想实现点击视频任何区域,实现视频全屏,经测试发现ios下,部分机型不能正常捕获到video或者容器的tap事件,推荐视频区域不要用video,假写成一张图片和一个播放按钮,点击的时候全屏播放视频
  • const TxvContext = requirePlugin(“tencentvideo”); 可以打印TxvContext,插件暴露的接口都在这里面
  • 强烈建议在拿到vid后在渲染视频组件 否则会报错,因为视频组件初始化一定要给vid

4、使用播放器组件

const txvContext = requirePlugin("tencentvideo");
Page({
  	onLoad: function (options) {
  		let txvContext = TxvContext.getTxvContext('txv1') // txv1即播放器组件的playerid值
  		}
  })
/*
	更多方法详情都在文档中可以找到:

	txvContext.play();  // 播放
	txvContext.pause(); // 暂停
	txvContext.requestFullScreen(); // 进入全屏
	txvContext.exitFullScreen();    // 退出全屏
	txvContext.playbackRate(+e.currentTarget.dataset.rate); // 设置播放速率
*/

我是使用mpvue,方法是一样的

const txvContext = requirePlugin("tencentvideo");
export default {
	onLoad(){
    	this.txvContext = txvContext.getTxvContext('txvContext')
    },
}

由于数据都是请求的,肯定不可能直接这样渲染,插件必须是在得到vid之后才可以渲染,所以初始应该先使用v-if,避免报错

// 这里是我的代码
<template>
	<txv-video
       v-if="video.videoSrc"
       :title="video.title"
       :vid="video.videoSrc" 
       :playerid="video.videoSrc"
     ></txv-video>
</template>
<script>
const txvContext = requirePlugin("myPlugin");
export default {
	mounted(){
    	this.getList()
    },
    methods: {
		getList(){
			....
			// 请求得到数据
			this.videos = res.data
			
			res.data.forEach((element,i) => {
                txvContext.getTxvContext(element.videoSrc);
            });
		}
	}
}

可能遇到的问题

1、报错,没有发现txv-video组件
检查json是否填写正确,插件名称有没有问题

2、视频没法播放
检查是否在没有vid之前就已经渲染了txv-video组件

发现一个取巧方案

https://www.jiezhe.net/post/38.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值