vue-video-player是一款视频播放插件,具体怎么引入vue-video-player 直接点进去有详细的介绍。

项目中视频可以正常播放,但是不能拖动进度条,拖动进度条就会从头开始,解决办法是在后台请求响应头加上下面两行代码

后端

             response.setHeader("Accept-Ranges", "bytes");response.setHeader("Content-Length", String.valueOf(fileLength));

这样进度条就可以拖动了,如果不想进度条被拖动在前端将进度条的样式修改如下

.course_node_video >>> .vjs-progress-control{pointer-events: none;}

同时,第一行代码也是我们实现断续播放的关键。

前端

<video-player class="video-player vjs-custom-skin"ref="videoPlayer":playsinline="true":options="playerOptions"@ready="playerReadied"@pause="onPlayerPause($event)"@timeupdate = "onPlayerTimeupdate($event)"></video-player>
/* 设置视频开始的进度 */playerReadied (player) {player.currentTime(this.currentTime)},// 暂停回调   将视频播放的时间保存onPlayerPause(player) {console.log('player pause currentTime!', player.cache_.currentTime);let that = this;//TODO   存储player.currentTime 是当前暂停时间    用于下次断续播放},

前端全部代码

<template><div class="course_node_video"><video-player class="video-player vjs-custom-skin"ref="videoPlayer":playsinline="true":options="playerOptions"@ready="playerReadied"@pause="onPlayerPause($event)"@timeupdate = "onPlayerTimeupdate($event)"></video-player></div>
</template><script>import Vue from "vue";import VideoPlayer from 'vue-video-player'import 'vue-video-player/src/custom-theme.css'import 'video.js/dist/video-js.css'Vue.use(VideoPlayer)export default {name: "CourseNodeVideoPlayer",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 // 是否显示全屏按钮}},currentTime: null}},methods: {loadCourseNodeVideo: function (id) {this.playerOptions.sources[0]['src'] = serverIp + this.$apis.common.getFile+'?id=' + id;},/* 获取视频播放进度 */onPlayerTimeupdate (player) {this.currentTime = player.cache_.currentTime},/* 设置视频开始的进度 */playerReadied (player) {player.currentTime(this.currentTime)},// 暂停回调   将视频播放的时间保存onPlayerPause(player) {console.log('player pause currentTime!', player.cache_.currentTime);let that = this;//TODO   存储player.currentTime 是当前暂停时间    用于下次断续播放},},beforeMount() {let id = this.$route.query.id;if (id != undefined && id != null) {//编辑localStorage.setItem("videoId", id);this.loadCourseNodeVideo(id);} else {id = localStorage.getItem("videoId");if (id != undefined && id != null) {this.loadCourseNodeVideo(id);} else {localStorage.removeItem("videoId");}}}}
</script><style scoped>.course_node_video {width: 100%;height: auto;margin: 0 auto;text-align: center;}.course_node_video >>> .vjs-progress-control{pointer-events: none;}
</style>

vue+vue-video-player进度条拖动及断续播放相关推荐

  1. PyQt5 --- 进度条拖动点击视频播放

    最近学习pyqt5,做一个视频播放器,网上找了很多资料都没有关于python方面的视频进度条拖动点击的方法,几乎都是Qt的.对相关资料的查阅,发现开发过程其实差不多,为此做一下相关的总结. 一.UI的 ...

  2. 断点续传(视频进度条拖动以及flv.js需要断点续传)

    目前遇到2种场景需要用到断点续传 视频进度条无法正常拖动,或拖动视频未发生变化,F12请求头中可以看到"Range". 使用B站开源组件flv.js只可以播放3分钟视频,想要解决就 ...

  3. 简单的进度条拖动效果及拖拽改变层大小

    业务需求 价格区间的  进度条拖动初级demo 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset=&qu ...

  4. 【OpenCV+Qt】实现简易视频播放器——支持进度条拖动

    OpenCV实现视频播放器,其思路大致就是在线程中使用OpenCV中的VideoCapture循环读取本地视频的每一帧Mat,然后发送到界面转换成QImage进行显示,而进度条拖动则用到了VideoC ...

  5. css拖动音乐进度条,利用CSS3实现3D滑块进度条拖动动画特效

    特效描述:利用CSS3实现 3D滑块 进度条拖动 动画特效.利用CSS3实现3D滑块进度条拖动动画特效 代码结构 1. HTML代码 Scalable 3D Range Sliders Simple ...

  6. html5 音乐播放进度条,js实现音乐播放控制条

    前言 html5中提供audio标签, 该标签实现音频的播放,之前就一直对于音频以及视频播放比较感兴趣,一直想要自己实现一个音频和视频播放的模块,这也是本文章撰写的初衷,最近花了些时间实现了Audio ...

  7. 怎么隐藏audio播放器的播放进度条,只保留播放按钮?

    怎么隐藏audio播放器的播放进度条,只保留播放按钮? 截图 在页面最右边的button中嵌套了audio音频播放器,播放器默认的样式有一个播放进度条,导致页面宽度被撑开了,布局被破坏. 第一种: 第 ...

  8. vue vue3 实现滚动进度条,斑马纹进度条

    vue实现进度条 效果如下 使用方法 <div style="width: 400px;text-align: center; margin: 0 auto">< ...

  9. vue使用nprogress(进度条)

    目录 1.安装 2.引入 3.配置 4.使用 5.使用场景 6.改变颜色 1.安装 npm install --save nprogress 2.引入 import NProgress from 'n ...

最新文章

  1. polymer 绑定html元素,使用在Polymer元素内的light dom中定义的模板
  2. 【Python】如何用Python来操作PDF文件,建议收藏
  3. ARM 之十一__weak 和 __attribute__((weak)) 关键字的使用
  4. (一) HTTP 1.1支持的状态代码
  5. add()方法和Put()方法的差别
  6. 12864 显示多种图形
  7. 扁球 matlab,扁球体表面积计算公式
  8. 计算机毕业设计Java消防安全应急培训管理平台(源码+系统+mysql数据库+Lw文档)
  9. java表格边框问题_Java 设置Word表格边框
  10. 赫茨伯格工作丰富化模型(转载)
  11. docker网络问题
  12. (C语言之复习demo_10-自我复习使用-可供参考)_if 的四种句型深入解析,附带集合文氏图详解
  13. mybatis原理分析(五)---参数处理
  14. 空间句法软件Axwoman6.3 安装及ArcGIS 工具加载
  15. 五彩斑斓的颜色可预告心情
  16. 为什么下载的破解游戏和软件经常会被报毒?
  17. java过滤ios表情,JS前端去掉emoji表情和Java后台处理emoji表情方法
  18. 北漂9年了,37岁的我跳槽进了国企,开启了一段新的人生旅程
  19. OSPFB笔记-五个报文【超详细】[Hello报文,DD报文,LSR报文,LSU报文,LSAck报文]
  20. web安全—万能密码登录(跳过密码验证)

热门文章

  1. NVS4200M显卡“超频”
  2. JavaScript 数据类型之 Symbol、BigInt
  3. flutter刷新当前页面替换TabController
  4. 正则表达式的常规用法 替换 查找
  5. studio 热重载应用_热重载 (Hot reload)
  6. 数据结构--逻辑结构和存储结构区别和内容
  7. 消息称Snapchat将收购自制表情应用开发商Bitstrips
  8. Spark生态系统和运行架构
  9. 论文阅读:Recurrent Neural Networks for Time Series Forecasting Current Status and Future Directions
  10. *PAT_甲级_1072 Gas Station (30point(s)) (C++)【Dijkstra/字符串截取/与数字相互转换】