首页 > 其他分享 >Vue2适用的视频组件

Vue2适用的视频组件

时间:2022-12-01 21:11:43浏览次数:72  
标签:视频 dom index item Vue2 组件 播放

Vue2适用的视频组件

官方文档路径

西瓜视频官方文档:http://v2.h5player.bytedance.com/gettingStarted/

随笔制作参考 : https://juejin.cn/post/7023547598724136990#heading-5

 

安装

    npm install xgplayer

 

引入与初始化

//视频组件
import Player from 'xgplayer'

//视频来源
import vdotest from '../assets/856070423-1-208.mp4'

//封面组件
import photoimg from "../assets/img/mp4photo.jpg"
  • 直接在各个组件中引用

  • 若视频来源于组件来源为本地地址时可以采用这个方法

  • 视频地址与封面地址来源于请求时请不要采用此方法

 

html中需要提供一个盒子用于显示

<div id="vedio" style="width:100%;height:720px" @mouseenter="startPlay()" @mouseour="stopplay()">
</div>
  • 可以添加移入移出事件

  • id 是进行绑定的关键,需要核对正确

 

在methods提供视频初始化与请求的函数

setBaseVideo() {
           this.player = new Player({
               id: "标签的id名或者 使用 el:dom元素",          
               url: "视频url或引入的对象",
               videoInit: true,
               poster: "封面图",
               controls: "是否拥有进度条(true或false)",
               playbackRate: [0.5, 0.75, 1, 1.5, 2],
               whitelist: [''],
               fluid: false,
               width: '100%',
               height: '720px'
          })
      },

 

在生命函数中使用初始化函数

    mounted() {
       this.setBaseVideo()
  },
  • 需要在挂载期中使用

 

移入移出视频框函数

startPlay() {
    this.$nextTick(() => {
           this.player.play()
        })
  },

stopplay(){
       this.$nextTick(() => {
           this.player.stop()
        })
  },
  • 移入时视频开始播放

  • 移出后视频暂停播放

 

发送请求获取回视频的逻辑

  1. 引入请求

  2. 视频的url由 splj+spbh组成,缩略图poster由spsltlj+spslt组成

  3. dom用于显示在画面当中是显示数组

  4. 此处的业务逻辑是根据页面路由参数 ID 进行请求

  5. 请求回来的数据遍历并进行初始化该视频设置

  6. 因为页面的显示是根据 dom数组来进行v-for 的,所以在 ListCreated 函数当中会导入所获取的信息并且向 dom 数组中新增数据

import { videoListAPI } from "@/api/video"
data () {   return {
       videoList:[
          {
               splj:'',
               spbh:'',  
               spsltlj:'',
               spslt:''
    },{....}],
       dom:[],
}},
created() {
  this.setList()
},
methods: {
  async setList(){
       const res =await videoListAPI(this.$route.query.id)
       this.videoList=res.data.records
       setTimeout(() => {
           if(this.videoList.length){
                    this.videoList.forEach((item,index)=>{
                       this.ListCreated(item,index)
              },1000)
          }else{
              this.dom.length=0
          }
      })
  },

   ListCreated (item,index) {
           this.dom[index]= new Player({
           el: this.$refs['video'+index][0],
           url: item.splj+'/'+item.spbh,
           videoInit: true,
           poster:item.spsltlj+'/'+item.spslt,
      })
},

 

函数中可选的配置项

airplay播放镜像(投屏) 
cssFullscreen 样式全屏  
danmu 弹幕  
definition 清晰度  
download 下载  
enter 视频起播加载UI控件  
error 播放出错  
flex 底部控制栏中的弹性占位控件  
fullscreen 全屏  
keyboard 键盘快捷键  
loading 播放卡顿时展示的UI控件  
localPreview 预览本地视频  
memoryPlay 记忆播放  
miniplayer 迷你播放器  
pip 画中画  
play 播放/暂停(底部控制栏左侧)  
playbackRate 倍速  
playNext 播放下一集  
poster 封面图  
progress 进度条  
reload 重新载入  
replay 重播  
rotate 旋转  
screenShot 截图  
textTrack 外挂字幕  
time 播放时间  
volume 音量  

 

标签:视频,dom,index,item,Vue2,组件,播放
From: https://www.cnblogs.com/Dollom/p/16942706.html

相关文章

  • 组件
    <!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <scriptsrc="js/vue.js"type="text/javascript"charset="utf-8"></script> <title></title> </head> ......
  • vue2 数组18 some erver filter reduce axios
    some: return true是固定写法,终止some循环 erver: filter:   优化写法:arr.filter(item=>item.state).reduce((累加的结果,当前循环项)=>{},初始值)拿上......
  • Flutter不常用组件(一)
    Flutter目前拥有400多个组件,其中常用的也就那么几个。大家学习Flutter一般都是看的其他人的教程,或者官网的文档教程,这些教程里用到的组件只有那些常用的,更多的组件需要......
  • 《安富莱嵌入式周报》第293期:SEGGER开源其C/C++库源码emRun,丰富EMC电磁兼容资,OTA开源
    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1ND4y1v7ik/ 1、......
  • 排序算法图文视频讲解
    排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排......
  • Qt视频监控系统一个诡异问题的解决思路(做梦都想不到)
    一、前言由于Qt版本众多,几百个版本之间存在不兼容的情况,为此如果要兼容很多版本,没有取巧的办法和特殊的捷径,必须自己亲自安装各个版本编译运行并测试,大问题一般不会有,除非......
  • kotlin和java混合开发项目,多模块,分模块开发,分module,组件化开发
    #picture_dx#欢迎能来到这里客服机器人美洽第三方完美接入魔窗 该demo用了组件化为什么要组件化近年来,为什么这么多团队要进行组件化实践呢?组件化究竟能给我们的工程、代......
  • 【音视频连载-010】第二季 FFmpeg 日志打印
    公众号回复:OpenGL,领取学习资源大礼包音视频学习入门技术文章连载:​​技术开发故事会连载​​​​【音视频连载-001】基础学习篇-SDL介绍以及工程配置​​​​【音视频连载-......
  • 视频美颜SDK的AI磨皮功能是怎么实现的?
    在上篇中,小编讲到了美颜SDK的AI美颜算法与传统美颜算法的区别,大家反响强烈。今天,小编为继续为大家讲解AI美颜相关的功能——AI磨皮。传统的磨皮功能大家应该比较熟悉,因为技......
  • java将视频转换为gif动图
    一、依赖<dependency><groupId>ws.schild</groupId><artifactId>jave-nativebin-win64</artifactId><version>3.1.1</version></dep......