详解vue-video-player使用心得(兼容m3u8)


Posted in Javascript onAugust 23, 2019

下载vue-video-player

npm install vue-video-player --save

在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)

在页面中引入

<video-player
    ref="videoPlayer"
    class="video-player vjs-custom-skin"
    :playsinline="true"
    :options="playerOptions"
    @play="onPlayerPlay($event)"//监听开始状态
    @pause="onPlayerPause($event)"//监听暂停状态
   />

在页面中data中配置

playerOptions: {
    // playbackRates: [0.7, 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', // 这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目
       src: 'https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm' // url地址
      }
    ],
    hls: true,
    poster: 'http://pic33.nipic.com/20131007/13639685_123501617185_2.jpg', // 你的封面地址
    width: document.documentElement.clientWidth, // 播放器宽度
    notSupportedMessage: '此视频暂无法播放,请稍后再试', // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
    controlBar: {
     timeDivider: true,
     durationDisplay: true,
     remainingTimeDisplay: false,
     fullscreenToggle: true // 全屏按钮
    }
   },

挂载视频组件(非必须)不写这一步也可以实现播放,添加这个是为了自定义按钮使用

computed: {
  player() {
   return this.$refs.videoPlayer.player//自定义播放
  }
 },

官方文档

video.js:https://docs.videojs.com/docs/api/player.html
vue-video-player:https://github.com/surmon-china/vue-video-player

不需要兼容m3u8的,以上就可以实现能播放

兼容m3u8的需要下载

npm install --save videojs-contrib-hls

在文件中引入

import ‘videojs-contrib-hls'

我这么引入会出现找不到文件,我没找到问题所在,如果这么引入不行,可以改为

在main.js文件中

const hls = require('videojs-contrib-hls')
Vue.use(hls)

这样就好了

在页面中测试

{
      type: 'application/x-mpegURL', // 这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目
      src:
       'https://cdn.letv-cdn.com/2018/12/05/JOCeEEUuoteFrjCg/playlist.m3u8' // url地址,从别的博主那看来的地址,亲测可用
     }

至此就可以播放了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
强悍无比的WEB开发好助手FireBug(Firefox Plugin)
Jan 16 Javascript
jQuery内置的AJAX功能和JSON的使用实例
Jul 27 Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
jquery实现两边飘浮可关闭的对联广告
Nov 27 Javascript
javascript实现获取浏览器版本、浏览器类型
Dec 02 Javascript
将json转换成struts参数的方法
Nov 08 Javascript
javascript中this关键字详解
Dec 12 Javascript
vue使用websocket的方法实例分析
Jun 22 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 Javascript
在vue中使用eslint,配合vscode的操作
Nov 09 Javascript
React-vscode使用jsx语法的问题及解决方法
Jun 21 Javascript
使用vue实现多规格选择实例(SKU)
Aug 23 #Javascript
jquery分页优化操作实例分析
Aug 23 #jQuery
jquery实现的分页显示功能示例
Aug 23 #jQuery
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
Aug 22 #Javascript
通过扫小程序码实现网站登陆功能
Aug 22 #Javascript
vue中实现上传文件给后台实例详解
Aug 22 #Javascript
js的新生代垃圾回收知识点总结
Aug 22 #Javascript
You might like
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
js实现交通灯效果
2017/01/13 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
用Vue.extend构建消息提示组件的方法实例
2017/08/08 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
跟混乱的页面弹窗说再见
2019/04/11 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python字典操作简明总结
2015/04/13 Python
Python实现字典的key和values的交换
2015/08/04 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
Python中的命令行参数解析工具之docopt详解
2017/03/27 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
彻底理解Python中的yield关键字
2019/04/01 Python
python实现人机猜拳小游戏
2020/02/03 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Django之腾讯云短信的实现
2020/06/12 Python
俄罗斯眼镜网: optikaworld
2016/07/31 全球购物
介绍一下Linux内核的排队自旋锁
2014/08/27 面试题
大学生暑期实践感言
2014/02/26 职场文书
经典洗发水广告词
2014/03/13 职场文书
费城故事观后感
2015/06/10 职场文书
法律服务所工作总结
2015/08/10 职场文书
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
如何优化vue打包文件过大
2022/04/13 Vue.js