安装依赖 npm install vue-video-player -S

main.js中引入配置

import VideoPlayer from 'vue-video-player'

require('video.js/dist/video-js.css')

require('vue-video-player/src/custom-theme.css')

Vue.use(VideoPlayer)

html部分

class="video-player vjs-custom-skin"

ref="videoPlayer"

:playsinline="true"

:options="playerOptions"

@play="onPlayerPlay($event)"

@pause="onPlayerPause($event)"

@ended="onPlayerEnded($event)"

@loadeddata="onPlayerLoadeddata($event)"

@waiting="onPlayerWaiting($event)"

@playing="onPlayerPlaying($event)"

@timeupdate="onPlayerTimeupdate($event)"

@canplay="onPlayerCanplay($event)"

@canplaythrough="onPlayerCanplaythrough($event)"

@ready="playerReadied"

@statechanged="playerStateChanged($event)"

>

配置部分

playerOptions : {

playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度

autoplay: false, // 如果true,浏览器准备好时开始回放。

muted: false, // 默认情况下将会消除任何音频。

loop: false, // 导致视频一结束就重新开始。

preload: 'auto', // 建议浏览器在加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)

language: 'zh-CN',

aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")

fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。

sources: [{

type: "",

src: "", //url地址

}],

poster: "../../static/images/test.jpg", // 你的封面地址

// width: document.documentElement.clientWidth,

notSupportedMessage: '此视频暂无法播放,请稍后再试', // 允许覆盖Video.js无法播放媒体源时显示的默认信息。

controlBar: {

timeDivider: true,

durationDisplay: true,

remainingTimeDisplay: false,

fullscreenToggle: true, // 全屏按钮

}

}

设置视频URL方法

setVideoUrl() {

this.playerOptions['sources'][0]['src'] = '接口地址';

}

部分回调方法

//监听播放状态改变

playerStateChanged(player) {

localStorage.setItem('playlog', JSON.stringify(player.cache_.currentTime));

},

//监听媒体是否已到达结尾,播放完

//DOM元素上的readyState更改导致播放停止。

onPlayerWaiting(player) {

},

//媒体不再被禁止播放,并且已开始播放。

onPlayerPlaying(player) {

},

//当播放器在当前播放位置下载数据时触发

onPlayerLoadeddata(player) {

// console.log(player);

},

//当前播放位置发生变化时触发。

onPlayerTimeupdate(player) {

localStorage.setItem('playlog', JSON.stringify(player.cache_.currentTime));

},

//媒体的readyState为HAVE_FUTURE_DATA或更高

onPlayerCanplay(player) {

// console.log('player Canplay!', player)

},

//媒体的readyState为HAVE_ENOUGH_DATA或更高。这意味着可以在不缓冲的情况下播放整个媒体文件。

onPlayerCanplaythrough(player) {

// console.log('player Canplaythrough!', player)

},

//将侦听器绑定到组件的就绪状态。与事件监听器的不同之处在于,如果ready事件已经发生,它将立即触发该函数。。

playerReadied(player) {

// seek to 10s

// console.log('example player 1 readied', player);

player.currentTime(JSON.parse(localStorage.getItem('playlog')))

// player.currentTime(0)

// console.log('example 01: the player is readied', player)

},

//播放事件

onPlayerPlay(player) {

this.paused = false

// console.log('onPlayerPlay!', player)

},

//暂停事件

onPlayerPause(player) {

this.paused = true

// console.log('onPlayerPause!', player)

},

//停止事件

onPlayerEnded(player) {

this.paused = false

console.log('player ended!', player)

}

css部分设置播放按钮的形状与位置

.video-js .vjs-big-play-button{}

html5 video断点续播,Vue中集成vue-video-player及相关api/vue视频播放插件/支持断点续播...相关推荐

  1. vue中集成的ui组件库_Vue组件可使用Vault Flow通过Braintree集成PayPal付款

    vue中集成的ui组件库 Vue Braintree PayPal按钮 (Vue Braintree PayPal button) Vue component to integrate PayPal ...

  2. 轮播swiper中加视频video滑动不顺畅报错 property on ‘HTMLMediaElement‘: The provided double value is non-finite.

    轮播swiper中加视频video滑动不顺畅报错TypeError: Failed to set the 'currentTime' property on 'HTMLMediaElement': T ...

  3. 总结Vue中index.html、main.js、App.vue、index.js之间关系以及Vue项目加载流程

    总结Vue中index.html.main.js.App.vue.index.js之间关系以及Vue项目加载流程 文章目录 总结Vue中index.html.main.js.App.vue.index ...

  4. Vue中集成高德地图API实现定位与自定义样式信息窗体

    场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...

  5. vue中集成blockly的踩坑之旅

    blockly是一款可视化编辑器. blockly源码下载地址:https://gitee.com/mirrors/blockly?_from=gitee_search blockly的文档参考网址: ...

  6. VUE中集成H5直播点播播放器LivePlayer过程

    基于VUE和webpck的前端工程 这里可以参考 https://github.com/livegbs/GB28181-Server 1.安装@liveqing/liveplayer npm -i @ ...

  7. vue中waiting for update signal from wds_10个vue快捷开发技巧助你成为中级前端工程师!(二)...

    前言 先赞再看,养成习惯~ 优雅更新props 更新 prop 在业务中是很常见的需求,但在子组件中不允许直接修改 prop,因为这种做法不符合单向数据流的原则,在开发模式下还会报出警告.因此大多数人 ...

  8. vue中集合取第一个_快速学习Vue框架(知识点集合)

    学习Vue的小伙伴速度看过来,快速学习Vue框架知识点集合贴来啦.建议收藏,尤其基础并不是很扎实的同学,本篇集合贴就是你日后工作的参考手册. 基础知识: ·vue的生命周期:beforeCreate/ ...

  9. Vue中的this.$nextTick方法的使用 [前端][Vue框架]

    Vue中的this.$nextTick方法的使用 因为在vue中当组件的data中的数据发生了变化之后, 如果这个data中的数据与某个Dom元素有关, 那么这个时候这个Dom元素不会立即更新, vu ...

  10. 在vue中怎么写行内样式高_13.VUE学习之控制行内样式

    vue 测试一 测试二 测试三 var app = new Vue({ el: "#vue", data:{ red:"red", size:28, div2: ...

最新文章

  1. 如何在StackOverflow上获得第一个标签徽章-以及为什么它很重要。
  2. APP投资 历史 十万到 十亿元的项目
  3. 情商(实践版本,丹尼尔.戈尔曼)---阅读记录
  4. sqlserver的技术规格
  5. 关于selenium+java,实现部分截图功能,-针对单个元素的截图
  6. Google Gson 使用简介
  7. Memcached Client 使用手册
  8. 通过反射获取无参无返回值成员方法并使用
  9. Tesseract 3 语言数据的训练方法【转】http://blog.csdn.net/dragoo1/article/details/8439373
  10. CSAPP--整数的表示
  11. android tablelayout 点击,Android Design之TableLayout选项卡
  12. CheckBoxList 只能选2个选项
  13. 【JAVA】doc,excel,等转pdf,swf
  14. 大师级中国风复古景区网站设计及html前端源码
  15. 为什么硅谷初级程序员工资堪比腾讯T3技术专家级
  16. 树莓派的img文件怎样在vmware虚拟机里面打开
  17. 使用Python实现淘宝订单定时付款
  18. 服务器邮箱验证失败是什么意思,发送邮件时,提示“邮件发送失败:SMTP验证失败”?...
  19. hibernate之HQL实体更新与删除
  20. 【考研英语】用最少的时间拿最多的分数,完形超实用攻略!

热门文章

  1. Liunx教程超详细(完整)
  2. 为什么传统的验证码不再安全
  3. APP离线后,通过SystemClock.elapsedRealtime()校正时间
  4. 如何启用计算机的无线功能键在哪,笔记本无线网络开关,小编教你如何打开笔记本电脑无线网卡开关...
  5. 推荐给计算机专业教师读的书
  6. c语言cyc函数,cyc指标源码
  7. GO+Selenium批量关注各大网站实战 1 (基础+demo)
  8. 注意力机制如何助力GAN生成更高质量的图像?
  9. Photoshop学习整理---修复画笔工具
  10. 如何修改psd文件?psd样式怎么修改文字?