首页 > 其他分享 >uniapp自定义组件的使用--记录

uniapp自定义组件的使用--记录

时间:2022-11-07 15:47:29浏览次数:77  
标签:uniapp vue videoUrl 自定义 -- myVideo createVideoContext nav VideoPlaySelf

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

components:

  videoComp:

  VideoPlaySelf.vue

VideoPlaySelf.vue 内容

<template>
    <video class="video" id="myVideo"
        :loop="false" direction="0" :src="videoUrl" @click="$emit('hideElement')" autoplay :controls="false"
        @loadedmetadata="$emit('loadedmetadataStart',$event)" @timeupdate="$emit('videoTimeUpdate',$event)"
        @ended="$emit('palyNextVideo',sectionId)" :show-center-play-btn="false" :show-play-btn="false"
        :show-fullscreen-btn="false" :enable-progress-gesture="false">
    </video>
</template>

<script lang="ts">
    import { defineComponent } from 'vue'
    import nav from '@/utils/nav'
    
    export default defineComponent({
        name: 'VideoPlaySelf',
        props: ["videoUrl",'sectionId'],
        data() {
            
        },
        methods: {
            getVideoContext() {
                return nav.uniSelf.createVideoContext('myVideo', this);
            },
            videoPlay() {
                nav.uniSelf.createVideoContext('myVideo', this).play();
            },
            videoPause() {
                nav.uniSelf.createVideoContext('myVideo', this).pause();
            },
            videoSeek(second: number) {
                nav.uniSelf.createVideoContext('myVideo', this).seek(second);
            }
        }
        
    })
</script>

<style lang="scss">
    .video {
        position: absolute;
        width: 100vw;
        height: 100vh;
    }
</style>

 

在对应的vue页面引入:

<template>
<view>
...
  <VideoPlaySelf
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">  </VideoPlaySelf>
...
</view>
</template>

<script lang="ts"> import VideoPlaySelf from '@/components/videoComp/VideoPlaySelf.vue'; export default defineComponent({   components: {     VideoPlaySelf   }   ... </script>

 

标签:uniapp,vue,videoUrl,自定义,--,myVideo,createVideoContext,nav,VideoPlaySelf
From: https://www.cnblogs.com/zsw-wkx/p/16866145.html

相关文章

  • MySQL_约束
    常见约束含义一种限制,用于限制表中的数据为了保证表中的数据的准确和可靠性分类Notnull:非空约束用于保证该字段的值不能为空如:姓名、学号等Default:默认约束  ......
  • git推送错误:error: failed to push some refs to 'https://github.com/xxxxxxxxxx.git
    git推送到github仓库时,报错,如图报错原因:出现错误的主要原因是github中的README.md文件不在本地代码目录中 解决方案:1、输入以下命令,将远程库中的更新合并到(pull=fetc......
  • HashMap与ConcurrentHashMap
    HashMap与ConcurrentHashMap今天查看 webSocket结合redis 写的消息订阅与发布的服务端代码时,发现用ConcurrentHashMap存储session对象,由此引发一些思考;1、常用的has......
  • JUC并发编程第二章之Java线程
    JUC并发专题系列JUC并发编程第一章之进程与线程JUC并发编程第二章之Java线程JUC并发编程第三章之共享模型之管程JUC并发编程第四章之共享模型之内存JUC并发编程第五章......
  • 数位dp二则
    MagicNumbers CodeForces-628D题意:求区间[l,r]间偶数位都是d,奇数位都不是d的个数。l和r位数相等。解:l和r位数相等,很舒服,不用判前导0了。记录一下位数,判断其位置和......
  • 数字孪生in卫星:数字化助力强国芯
    数字化指将复杂多变的信息通过编码方式转换为计算机可识别的二进制数据,并建立适当的数字化模型进行存储。当前,数字化正如火如荼地展开,在各个领域已屡见不鲜,2021年11月,工信......
  • 从软件工程角度看测试
    这是软件工程系列的第六篇文章,我想从软件工程的角度来谈谈关于软件测试的一些话题。 软件工程的核心软件工程简单来说就是多人参与、有计划有步骤的构造一个符合质量......
  • marddown练习
    标题#+空格名字一级标题二级标记##+空格+名字二级标题三级标题##+空格三级标题四级标记最多六级字体粗体两边各两个**helloworld斜体两边各一个hellowor......
  • OJ周赛第三场——最大和数列
    最大和数列 问题描述 给定一个长为m的序列b你需要构造出一个序列A满足:对于所有1≤i≤m,i在A中出现了bi次定义f(A) 的值如下:求满足条件的 f(A)的最大......
  • 那些年和DataEase的偶遇
    1.什么是DataEase?是一款支持多种数据源,支持拖拉拽快速搭建多样图形化的报表工具。2.关于我和DataEase的偶遇?偶遇:一直想研究BI领域,论坛泡泡,朋友之间讨......