首页 > 编程语言 >uniapp引入微信小程序自定义视频组件--记录

uniapp引入微信小程序自定义视频组件--记录

时间:2022-11-07 15:36:32浏览次数:41  
标签:uniapp 自定义 index -- myVideo createVideoContext json event wx

官方文档:https://zh.uniapp.dcloud.io/tutorial/miniprogram-subject.html

在 pages.json同级目录下 创建目录和文件:

wxcomponents:

    my-video-play:

  index.js 

  index.json

  index.wxml

  index.wxss

 

pages.json 全局引入:

 

 

 

 index.js:

Component({
    properties: {
        videoUrl: String,
        sectionId: String
    },
    methods: {
        clickFun(event) {
            this.triggerEvent('hideElement');
        },
        loadedmetadataFun(event) {
            this.triggerEvent('loadedmetadataStart', event.detail.duration);
        },
        timeupdateFun(event) {
            this.triggerEvent('videoTimeUpdate', event.detail);
        },
        endFun() {
            this.triggerEvent('palyNextVideo', this.sectionId);
        },
        getVideoContext() {
            return wx.createVideoContext("myVideo", this);
        },
        videoPlay() {
            wx.createVideoContext("myVideo", this).play();
        },
        videoPause() {
            wx.createVideoContext("myVideo", this).pause();
        },
        videoSeek(second) {
            wx.createVideoContext("myVideo", this).seek(second);
        }
    }
})

index.wxml:

<video style="position: absolute; width: 100vw; height: 100vh;" id="myVideo"
    direction="0" 
    src="{{videoUrl}}"
    autoplay 
    controls="{{false}}" 
    show-center-play-btn="{{false}}" 
    show-play-btn="{{false}}" 
    show-fullscreen-btn="{{false}}" 
    enable-progress-gesture="{{false}}"
    bindloadedmetadata="loadedmetadataFun"
    bindtimeupdate="timeupdateFun" 
    bindended="endFun"
    bindtap="clickFun"
>
</video>

index.json:

{
  "component": true
}

index.wxss: 空文件

 然后在uniapp vue文件中引入该组件:

<template>
<view>
...
<my-video-play style="position: absolute; width: 100vw; height: 100vh;" v-if="current === index && (item.videoUrl !== '')" ref='videoPlaySelf' :videoUrl="item.videoUrl" :sectionId="item.sectionId" @hideElement="hideElement" @loadedmetadataStart="loadedmetadataStart" @videoTimeUpdate="videoTimeUpdate" @palyNextVideo="palyNextVideo"> </my-video-play>
...
</view>
</template>
<script lang="ts">
...
</script>
<style lang="scss" scoped>
...
</style>

 

标签:uniapp,自定义,index,--,myVideo,createVideoContext,json,event,wx
From: https://www.cnblogs.com/zsw-wkx/p/16866102.html

相关文章

  • 扩展欧几里得算法
    题目:#include<bits/stdc++.h>usingnamespacestd;intexgcd(inta,intb,int&x,int&y){if(b==0){x=1,y=0;returna;}intx1,y1......
  • 2022-11-07 Acwing每日一题
    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我......
  • Constant Palindrome Sum
    题目:Youaregivenanarrayaconsistingofnintegers(itisguaranteedthatniseven,i.e.divisibleby2).Allaidoesnotexceedsomeintegerk.Yourtaski......
  • Database - 常见面试题
    1、在使用leftjoin时,on和where条件的区别1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成......
  • 你猜这是什么题
    题目:题解:替换字母,找到最后的替换结果#include<bits/stdc++.h>usingnamespacestd;map<char,char>q;intcon[30];intvis[1000005];intmain(){longlongn,m;cin......
  • 模糊坐标
    题目我们有一些二维坐标,如 "(1,3)" 或 "(2,0.5)",然后我们移除所有逗号,小数点和空格,得到一个字符串S。返回所有可能的原始字符串到一个列表中。原始的坐标表示法不会......
  • A Number Puzzle
    题目:题解:全排列函数#include<bits/stdc++.h>usingnamespacestd;inta[15];intans[10000005];intmain(){intn,m;while(scanf("%d%d",&n,&m)!=EOF){......
  • 欧拉函数
    题目:#include<iostream>usingnamespacestd;intmain(){intn;cin>>n;while(n--){intx,res;cin>>x;res=x;for(inti=2;......
  • MySQL_数据类型_日期型
    分类Date:只保存日期Time:只保存时间Year:只保存年 Datetime:保存日期+时间Timestamp:保存日期+时间特点 字节范围时区等的影响datetime81000~9999不......
  • 最长上升子序列
    题目:题解:#include<bits/stdc++.h>usingnamespacestd;longlonga[1005];longlongf[1005];intmain(){intn;cin>>n;for(inti=1;i<=n;i++){......