在data中

 vodPlayerJs: "https://player.polyv.net/script/player.js",
 this.loadPlayerScript(this.loadPlayer);if (this.player) {this.onPause();//两个监听事件this.onPlay();}

我这里不知道到底是vid还是URL,所以两个的取值根据传送的参数决定的

loadPlayerScript(callback) {if (!window.polyvPlayer) {const myScript = document.createElement("script");myScript.setAttribute("src", this.vodPlayerJs);myScript.onload = callback;document.body.appendChild(myScript);} else {callback();}},// 暂停事件onPause() {let that=this;this.player.on("s2j_onVideoPause", function (e) {that.flag=true;});},// 播放事件onPlay() {const _that = this;this.player.on("s2j_onVideoPlay", function (e) {_that.flag=false;});},loadPlayer() {const polyvPlayer = window.polyvPlayer;this.player = polyvPlayer({wrap: "#player" + this.index,width: "100%",height: "544",vid: this.vid,autoplay: false,ban_preview_video: "on",allowFullscreen:false,url: this.url,});},

关于全屏的问题
由于保利威的全屏不能带我自己写的进度条

let element = document.documentElement.getElementsByClassName("vue-video-player")[0];let player=document.getElementsByClassName('pv-video-player')[0];// this.player.toggleFullscreen();//保利威的全屏方法if (this.fullscreen) {player.style.height="544px";//用来设置保利威的视频大小,我设置AUTO或者100%的时候高度就为0了不知道为什么if (document.exitFullscreen) {document.exitFullscreen();} else if (document.webkitCancelFullScreen) {document.webkitCancelFullScreen();} else if (document.mozCancelFullScreen) {document.mozCancelFullScreen();} else if (document.msExitFullscreen) {document.msExitFullscreen();}} else {player.style.height="100vh";if (element.requestFullscreen) {element.requestFullscreen();} else if (element.webkitRequestFullScreen) {element.webkitRequestFullScreen();} else if (element.mozRequestFullScreen) {element.mozRequestFullScreen();} else if (element.msRequestFullscreen) {// IE11element.msRequestFullscreen();}}this.fullscreen = !this.fullscreen;

最后附上一些我自己写的菜单栏的方法

进度条的

var that = this;var oDiv1 = document.getElementById('d2');var oDiv2 = document.getElementById('bg1');var oDiv3 = document.getElementById('drag1');oDiv3.onmousedown = function (e) {var oEvent = e || event;var downLg = oEvent.clientX - oDiv3.offsetLeft;e.preventDefault();e.stopPropagation();document.onmousemove = function (ev) {var oEvent = ev || event;var moveLg = oEvent.clientX - downLg;ev.preventDefault();ev.stopPropagation();if (moveLg < 0) {moveLg = 0;}else if (moveLg > oDiv1.offsetWidth - oDiv3.offsetWidth + 14) {moveLg = oDiv1.offsetWidth - oDiv3.offsetWidth + 14;}oDiv2.style.width = moveLg + 'px';oDiv3.style.left = moveLg + 'px';that.currentTime1 = moveLg / 458 * that.allTime1;that.currentTime = that.getHMS(moveLg / 458 * that.allTime1);that.player.j2s_seekVideo(moveLg / 458 * that.allTime1);}document.onmouseup = function () {document.onmousemove = null;document.onmouseup = null;}}

附上盒子结构
这里面的取值 比如视频总长度,视频当前播放时间可以参考保利威的官方API
https://dev.polyv.net/2020/videoproduct/v-player-sdk/v-player-sdk-web/reference/

<div class="video-bar-bar"><div class="video-bar-bar-time">{{currentTime}}</div><div class="video-bar-bar-line" @mousedown="changeTime"><div class="video-bar-bar-line-cricle" id="drag1" :style="[{left:currentTime1/allTime1*458+'px'},{}]"></div>//这里是为了设置进度条跟小圆圈的长度与距离<div class="video-bar-bar-line-all" id="d2"></div><div class="video-bar-bar-line-get" id="bg1" :style="[{width:currentTime1/allTime1*458+'px'},{}]"></div></div><div class="video-bar-bar-allTime">{{allTime}}</div></div>

关于格式化视频时间

  getHMS(time) {const hour = parseInt(time / 3600) < 10 ? '0' + parseInt(time / 3600) : parseInt(time / 3600)const min = parseInt(time % 3600 / 60) < 10 ? '0' + parseInt(time % 3600 / 60) : parseInt(time % 3600 / 60)const sec = parseInt(time % 3600 % 60) < 10 ? '0' + parseInt(time % 3600 % 60) : parseInt(time % 3600 % 60)return hour + ':' + min + ':' + sec},

关于音量的设置也是

// 拖拽音量盒子changeVal() {let that = this;var oDiv1 = document.getElementById('d1');var oDiv2 = document.getElementById('bg');var oDiv3 = document.getElementById('drag');oDiv3.onmousedown = function (ev) {var oEvent = ev || event;var downLg = oEvent.clientY - oDiv3.offsetTop;ev.preventDefault();ev.stopPropagation();document.onmousemove = function (ev) {var oEvent = ev || event;var moveLg = oEvent.clientY - downLg;ev.preventDefault();ev.stopPropagation();if (moveLg < 0) {moveLg = 0;} else if (moveLg > 98) {moveLg = 98;}// oDiv2.style.height = 98-moveLg + 'px';// oDiv3.style.bottom = 98-moveLg + 'px';that.vol = 98 - moveLg;that.player.j2s_setVolume((98 - moveLg) / 100);}document.onmouseup = function () {document.onmousemove = null;document.onmouseup = null;}}},

同样附上盒子结构

 <div class="video-volume" @click.stop="isShowVol=!isShowVol"><div class="video-volume-bar" v-if="isShowVol" @mousedown="changeVal" @click.stop="changeVal"><div class="video-volume-bar-cricle" id="drag" :style="[{bottom:vol+'px'},{}]"></div><div class="video-volume-bar-all" id="d1"></div><div class="video-volume-bar-get" id="bg" :style="[{height:vol+'px'},{}]"></div></div><img id="vol" src="../../assets/蒙版组 57@2x.png" @mouseover="hover('vol',require('../../assets/蒙版组 57@2x_1.png'))"@mouseout="unhover('vol',require('../../assets/蒙版组 57@2x.png'))"></div>

以上
有兴趣的大家可以一起讨论

vue中使用保利威视频播放器相关推荐

  1. 保利威视频播放器功能抽取,仅作为播放课程资源使用,去除多余功能

    由于项目中所使用的场景,除了直播和回放,还有一个就是简单的课程资源播放器,然后取出整体的冗余,使用一个较为简单播放器来进行播放操作.保利威直播的demo和开发文档,在实际调试过程中,让人非常头疼,在g ...

  2. vue中安装和使用Dplayer视频播放器

    1.下载 npm下载 npm install dplayer - s npm i hls.js -s yarn下载 yarn add dplayer  yarn add hls.js 2.使用 < ...

  3. vue中使用腾讯云视频播放器

    1.index.html <!-- 引入腾讯云视频 --><script src="//imgcache.qq.com/open/qcloud/video/vcplayer ...

  4. Python笔记_84_我的订单_使用celery完成订单超时_视频播放_使用保利威视频加密

    文章目录 我的订单 后端提供查询当前登录用户的订单列表信息 前端请求获取当前登录用户的订单信息 订单状态显示分析 使用Celery的定时任务来完成订单超时功能 视频播放 使用保利威云视频服务来对视频进 ...

  5. 职教视频云:保利威、百家云与巨头对垒

    配图来自Canva可画 作为当下备受青睐的转型赛道之一,职业教育正在开启新的发展窗口,结合直播来打造玩法更多.互动更全的云课堂成为了众多职业教育玩家抢占先机的竞争高地. 面对职业教育线上化趋势,越来越 ...

  6. 保利威助力2022东亚海洋合作平台青岛论坛直播成功举办

    保利威助力2022东亚海洋合作平台青岛论坛直播成功举办! 6月21日-23日,由自然资源部.山东省人民政府主办的2022东亚海洋合作平台青岛论坛隆重举办,来自全球的近400位嘉宾.1000多家企业参会 ...

  7. 保利威HTML5播放器使用文档(参考备用)

    2018-11-19 长沙 阴  不好意思,是转载备用,不是原创的,图片为原创截图,呵呵. 功能特色: 倍速功能(0.5x / 1x / 2x ).加密.截图功能.模式切换.高清标清超清切换: 跑马灯 ...

  8. 保利威(polyv)加密视频的使用详解---python(基于drf/vue)

    0. 注册账号,新人会免费用7天 polyv官网地址http://www.polyv.net/vod/ 一. 根据图片步骤,创建视频分类并上传测试视频 a.    b. c.  d.  二. 参数介绍 ...

  9. 第三方直播云平台(保利威和阿里云)直播集成demo

    第三方直播云平台(保利威和阿里云)直播集成文档整理. 保利威: 保利威帮助中心 js demo <div id="player"></div> <sc ...

  10. 2022届秋招保利威前端面试

    2022届秋招保利威前端面试 原文网址:https://www.nowcoder.com/discuss/353158719997419520?sourceSSR=search 对象的浅拷贝和深拷贝如 ...

最新文章

  1. 百度搜索效果(页面传来数据地址,由服务器去获取)
  2. ES 查询数据的工作原理是什么?
  3. 逻辑运算符''取某值
  4. 在HTML中将垂直转换为平行,大物实验答案
  5. boost::type_erasure::add_assignable相关的测试程序
  6. 测试驱动javascript开发 -- 4.测试驱动开发过程(下)
  7. 计算机网络协议和通信规则,计算机网络协议基本知识
  8. SDH光端机概述与技术应用详解
  9. 【ES6(2015)】Number
  10. 源码-03-九宫格 封装 懒加载 plist
  11. 牛客网软件测试机考题库,为什么编程题本地测试通过,可是提交时却总报错。求大神们指点。...
  12. 电动轮椅行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  13. python 空列表对象的布尔值_python – 从TensorFlow对象中检索数据 – 来自correct_prediction的布尔值列表...
  14. 测试压缩ASP.NET中的ViewState
  15. 银监计算机类考试题库,干货!国考银监会财经类面试题库
  16. python调用打印机驱动下载_不要驱动,简单粗暴的用树莓派驱动USB打印机
  17. archlinux + dwm系统美化
  18. PS填充颜色边缘模糊
  19. ArcGIS中,一个点集里的点两两连线,比如有4个点,就连3+2+1=6条线
  20. AE/PR模板:10组电影质感海报宣传文字标题设计动画Cinematic Titles

热门文章

  1. 晒一波程序员的桌面,逼格超级高
  2. 软件开发项目计划书编写说明
  3. Web网页设计作业html
  4. Python爬虫QQ空间
  5. mdx词典包_不会用医学词典?停姐手把手教你啊(内附海量医学词典词库资源下载)...
  6. 中标麒麟Linux安装微信,中标麒麟微信群,剧透中标麒麟7.0
  7. nero刻录错误 序列号问题
  8. java 牙位图插件_牙医的骄傲-智能牙位图中文医疗应用app全球排名No.1
  9. C# 调用控制台应用程序及传参
  10. 身份证城市代号python_身份证号码的地区代码分别是什么?