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 相关文章推荐
网页上的Javascript编辑器和代码格式化
Apr 25 Javascript
JS编程小常识很有用
Nov 26 Javascript
深入理解javascript中defer的作用
Dec 11 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
May 04 Javascript
每天一篇javascript学习小结(面向对象编程)
Nov 20 Javascript
深入学习 JavaScript中的函数调用
Mar 23 Javascript
AngularJS自定义指令之复制指令实现方法
May 18 Javascript
详解Vue 2.0封装axios笔记
Jun 22 Javascript
详解vue2父组件传递props异步数据到子组件的问题
Jun 29 Javascript
jQuery插件实现的日历功能示例【附源码下载】
Sep 07 jQuery
jQuery实现视频展示效果
May 30 jQuery
解决antd 下拉框 input [defaultValue] 的值的问题
Oct 31 Javascript
详解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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
php 多线程上下文中安全写文件实现代码
2009/12/28 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
php简单统计中文个数的方法
2016/09/30 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
JavaScript Sort 表格排序
2009/10/31 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
Js基础学习资料
2010/11/23 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
jquery实现瀑布流效果 jquery下拉加载新数据
2016/12/12 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
Vue Element校验validate的实例
2020/09/21 Javascript
Java Web开发过程中登陆模块的验证码的实现方式总结
2016/05/25 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
Pycharm创建项目时如何自动添加头部信息
2019/11/14 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
Python configparser模块常用方法解析
2020/05/22 Python
详细分析Python collections工具库
2020/07/16 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
工商管理实习自我鉴定
2013/09/28 职场文书
个性与发展自我评价
2014/02/11 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
学校募捐倡议书
2014/05/14 职场文书
建材投资建议书
2014/05/16 职场文书
投资意向书
2014/07/30 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
一般党员对照检查材料
2014/09/24 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
部队个人年终总结
2015/03/02 职场文书