html5 video断点续播,Vue中集成vue-video-player及相关api/vue视频播放插件/支持断点续播...
安装依赖 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视频播放插件/支持断点续播...相关推荐
- vue中集成的ui组件库_Vue组件可使用Vault Flow通过Braintree集成PayPal付款
vue中集成的ui组件库 Vue Braintree PayPal按钮 (Vue Braintree PayPal button) Vue component to integrate PayPal ...
- 轮播swiper中加视频video滑动不顺畅报错 property on ‘HTMLMediaElement‘: The provided double value is non-finite.
轮播swiper中加视频video滑动不顺畅报错TypeError: Failed to set the 'currentTime' property on 'HTMLMediaElement': T ...
- 总结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 ...
- Vue中集成高德地图API实现定位与自定义样式信息窗体
场景 若依前后端分离版手把手教你本地搭建环境并运行项目: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662 在上面 ...
- vue中集成blockly的踩坑之旅
blockly是一款可视化编辑器. blockly源码下载地址:https://gitee.com/mirrors/blockly?_from=gitee_search blockly的文档参考网址: ...
- VUE中集成H5直播点播播放器LivePlayer过程
基于VUE和webpck的前端工程 这里可以参考 https://github.com/livegbs/GB28181-Server 1.安装@liveqing/liveplayer npm -i @ ...
- vue中waiting for update signal from wds_10个vue快捷开发技巧助你成为中级前端工程师!(二)...
前言 先赞再看,养成习惯~ 优雅更新props 更新 prop 在业务中是很常见的需求,但在子组件中不允许直接修改 prop,因为这种做法不符合单向数据流的原则,在开发模式下还会报出警告.因此大多数人 ...
- vue中集合取第一个_快速学习Vue框架(知识点集合)
学习Vue的小伙伴速度看过来,快速学习Vue框架知识点集合贴来啦.建议收藏,尤其基础并不是很扎实的同学,本篇集合贴就是你日后工作的参考手册. 基础知识: ·vue的生命周期:beforeCreate/ ...
- Vue中的this.$nextTick方法的使用 [前端][Vue框架]
Vue中的this.$nextTick方法的使用 因为在vue中当组件的data中的数据发生了变化之后, 如果这个data中的数据与某个Dom元素有关, 那么这个时候这个Dom元素不会立即更新, vu ...
- 在vue中怎么写行内样式高_13.VUE学习之控制行内样式
vue 测试一 测试二 测试三 var app = new Vue({ el: "#vue", data:{ red:"red", size:28, div2: ...
最新文章
- 如何在StackOverflow上获得第一个标签徽章-以及为什么它很重要。
- APP投资 历史 十万到 十亿元的项目
- 情商(实践版本,丹尼尔.戈尔曼)---阅读记录
- sqlserver的技术规格
- 关于selenium+java,实现部分截图功能,-针对单个元素的截图
- Google Gson 使用简介
- Memcached Client 使用手册
- 通过反射获取无参无返回值成员方法并使用
- Tesseract 3 语言数据的训练方法【转】http://blog.csdn.net/dragoo1/article/details/8439373
- CSAPP--整数的表示
- android tablelayout 点击,Android Design之TableLayout选项卡
- CheckBoxList 只能选2个选项
- 【JAVA】doc,excel,等转pdf,swf
- 大师级中国风复古景区网站设计及html前端源码
- 为什么硅谷初级程序员工资堪比腾讯T3技术专家级
- 树莓派的img文件怎样在vmware虚拟机里面打开
- 使用Python实现淘宝订单定时付款
- 服务器邮箱验证失败是什么意思,发送邮件时,提示“邮件发送失败:SMTP验证失败”?...
- hibernate之HQL实体更新与删除
- 【考研英语】用最少的时间拿最多的分数,完形超实用攻略!
热门文章
- Liunx教程超详细(完整)
- 为什么传统的验证码不再安全
- APP离线后,通过SystemClock.elapsedRealtime()校正时间
- 如何启用计算机的无线功能键在哪,笔记本无线网络开关,小编教你如何打开笔记本电脑无线网卡开关...
- 推荐给计算机专业教师读的书
- c语言cyc函数,cyc指标源码
- GO+Selenium批量关注各大网站实战 1 (基础+demo)
- 注意力机制如何助力GAN生成更高质量的图像?
- Photoshop学习整理---修复画笔工具
- 如何修改psd文件?psd样式怎么修改文字?