vue视频播放插件vue-video-player的具体使用方法


Posted in Javascript onNovember 08, 2019

安装

npm install vue-video-player --save

引入

可以全局引入插件,也可以在需要用到该插件的组件内单独引入(二选一)

【1】全局引用, 在main.js里面导入并引用

import VideoPlayer from 'vue-video-player'
import 'vue-video-player/src/custom-theme.css'
import 'video.js/dist/video-js.css'
 
Vue.use(VideoPlayer)

【2】组件内引用import { videoPlayer } from 'vue-video-player'

import 'video.js/dist/video-js.css'

export default {
 components: {
 videoPlayer
 }
}

使用

【1】html部分 

<template>
 <div class='demo'>
  <video-player class="video-player vjs-custom-skin" 
   ref="videoPlayer" 
   :playsinline="true" 
   :options="playerOptions">
  </video-player>
 </div>
 </template>

【2】js部分   

export default {
  data() {
  return {
   playerOptions: {
   playbackRates: [0.5, 1.0, 1.5, 2.0], // 可选的播放速度
   autoplay: false, // 如果为true,浏览器准备好时开始回放。
   muted: false, // 默认情况下将会消除任何音频。
   loop: false, // 是否视频一结束就重新开始。
   preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
   language: 'zh-CN',
   aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
   fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
   sources: [{
    type: "video/mp4", // 类型
    src: '' // url地址
   }],
   poster: '', // 封面地址
   notSupportedMessage: '此视频暂无法播放,请稍后再试', // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
   controlBar: {
    timeDivider: true, // 当前时间和持续时间的分隔符
    durationDisplay: true, // 显示持续时间
    remainingTimeDisplay: false, // 是否显示剩余时间功能
    fullscreenToggle: true // 是否显示全屏按钮
   }
   }
  }
  }
 }

【3】效果图​

vue视频播放插件vue-video-player的具体使用方法

视频格式

type:"video/webm" // 可以播放,用ogg也可打开
type:"video/ogg" // 可以播放,用webm也可打开
type:"video/3gp" // 可以播放
type:"video/mp4" // 可以播放
type:"video/avi" // 打不开
type:"video/flv" // 打不开
type:"video/mkv" // 打不开
type:"video/mov" // 打不开
type:"video/mpg" // 打不开
type:"video/swf" // 打不开
type:"video/ts"  // 打不开
type:"video/wmv" // 打不开
type:"video/vob" // 没转化
type:"video/mxf" // 转化出错
type: "video/rm"  // 转化出错

控制播放和暂停

this.$refs.videoPlayer.player.play() // 播放
this.$refs.videoPlayer.player.pause() // 暂停
this.$refs.videoPlayer.player.src(src) // 重置进度条

回调函数

<template>
 <div class='demo'>
  <video-player class="video-player vjs-custom-skin" 
  ref="videoPlayer" 
  :playsinline="true" 
  :options="playerOptions"
  @play="onPlayerPlay($event)" 
  @pause="onPlayerPause($event)"
  @ended="onPlayerEnded($event)"
  @waiting="onPlayerWaiting($event)"
  @playing="onPlayerPlaying($event)"
  @loadeddata="onPlayerLoadeddata($event)"
  @timeupdate="onPlayerTimeupdate($event)"
  @canplay="onPlayerCanplay($event)"
  @canplaythrough="onPlayerCanplaythrough($event)"
  @statechanged="playerStateChanged($event)"
  @ready="playerReadied"
  >
  </video-player>
 </div>
 </template>

 <script>
 export default {
  methods: {
  // 播放回调
  onPlayerPlay(player) {
   console.log('player play!', player)
  },

  // 暂停回调
  onPlayerPause(player) {
   console.log('player pause!', player)
  },

  // 视频播完回调
  onPlayerEnded($event) {
   console.log(player)
  },

  // DOM元素上的readyState更改导致播放停止
  onPlayerWaiting($event) {
   console.log(player)
  },

  // 已开始播放回调
  onPlayerPlaying($event) {
   console.log(player)
  },

  // 当播放器在当前播放位置下载数据时触发
  onPlayerLoadeddata($event) {
   console.log(player)
  },

  // 当前播放位置发生变化时触发。
  onPlayerTimeupdate($event) {
   console.log(player)
  },

  //媒体的readyState为HAVE_FUTURE_DATA或更高
  onPlayerCanplay(player) {
   // console.log('player Canplay!', player)
  },

  //媒体的readyState为HAVE_ENOUGH_DATA或更高。这意味着可以在不缓冲的情况下播放整个媒体文件。
  onPlayerCanplaythrough(player) {
   // console.log('player Canplaythrough!', player)
  },

  //播放状态改变回调
  playerStateChanged(playerCurrentState) {
   console.log('player current update state', playerCurrentState)
  },

  //将侦听器绑定到组件的就绪状态。与事件监听器的不同之处在于,如果ready事件已经发生,它将立即触发该函数。。
  playerReadied(player) {
   console.log('example player 1 readied', player);
  }
  
  },
 }
 </script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
父元素与子iframe相互获取变量和元素对象的具体实现
Oct 15 Javascript
调用DOM对象的focus使文本框获得焦点
Feb 19 Javascript
Javascript 高阶函数使用介绍
Jun 15 Javascript
jQuery实现的倒计时效果实例小结
Apr 16 Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 Javascript
原生js实现回复评论功能
Jan 18 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
Nov 14 Javascript
javascript json对象小技巧之键名作为变量用法分析
Nov 11 Javascript
Vue发布订阅模式实现过程图解
Apr 30 Javascript
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
Dec 07 Javascript
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
详解Vscode中使用Eslint终极配置大全
Nov 08 #Javascript
Vue实例的对象参数options的几个常用选项详解
Nov 08 #Javascript
Vuex中实现数据状态查询与更改
Nov 08 #Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
Nov 08 #Javascript
vue.js的简单自动求和计算实例
Nov 08 #Javascript
vue中get请求如何传递数组参数的方法示例
Nov 08 #Javascript
Vue搭建后台系统需要注意的问题
Nov 08 #Javascript
You might like
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
PHP进程同步代码实例
2015/02/12 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
2016/11/18 PHP
javascript 写类方式之一
2009/07/05 Javascript
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
2013/11/18 Javascript
js获得网页背景色和字体色的方法
2014/03/21 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
使用FileReader API创建Vue文件阅读器组件
2018/04/03 Javascript
vue实现购物车案例
2020/05/30 Javascript
理解python正则表达式
2016/01/15 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
python打包生成so文件的实现
2020/10/30 Python
Python os库常用操作代码汇总
2020/11/03 Python
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
高级销售求职信
2014/02/21 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
2014年仓库保管员工作总结
2014/12/03 职场文书
个人欠条范本
2015/07/03 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书
python glom模块的使用简介
2021/04/13 Python
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python
Java使用Unsafe类的示例详解
2021/09/25 Java/Android