vue通过video.js解决m3u8视频播放格式的方法


Posted in Javascript onJuly 30, 2019

前言

今天被这个关于m3u8视频播放不了搞了一下午,这个项目所有的视频流都是m3u8格式的,后台给我们返回的都是m3u8格式的视频流,解决了好长时间,看了好多博客,只有这个博客给我点启发,去解决这个问题,请查看。会使用两种方法来解决这个问题

第一种方法

1.在vue中安装下面这些插件

cnpm install video.js --save
ccnp install videojs-contrib-hls --save

网上有说video.js版本太高不能使用,不能使用7以上的版本,用5版本的,最后结果测试,根本不需要什么低版本的高版本的,7版本以上的没有任何问题。小编已经亲自试验过

2.页面中使用

<video
id="myVideo"
class="video-js vjs-default-skin vjs-big-play-centered"
controls
preload="auto"
style='width: 100%;height: auto'
:poster="poster"
>
</video>

2.1 poster设置封面图,我在计算属性判断了一下,,如果后台上传封面图,就显示,如果没有上传就显示默认的图片,这个是根据自己的需求来解决

computed: {
  poster: function() {
   return this.posterSrc
    ? this.posterSrc
    : require("./../assets/images/coveImg.png");
  }
 },

2.2在methods中定义一个方法,getViewList用于请求数据,拿到视频流

2.3下载之后在页面中引入,如果引入video.js有问题,就在html文件引入

<script src="//vjs.zencdn.net/7.3.0/video.min.js"></script>

这样就可以了

vue通过video.js解决m3u8视频播放格式的方法

2.3video.js配置项

getVideo() {
   this.myVideo = videojs("myVideo", {
    bigPlayButton: true,
    textTrackDisplay: false,
    posterImage: false,
    errorDisplay: false,
    hls: {
     withCredentials: true
    }
   });
  }

最重要的一点,标红的,一定一定要使用,下载了安装包,一定要在这个使用,才能失效。不然播放不了m3u8视频格式

mounted() {
this.$nextTick(() => {
this.getVideo();
});
this.getViewList();
},

定义的两个方法,放在mounted

第二种方法

上面是实现播放m3u8,接下来说第二种实现方法

<script src="https://cdn.jsdelivr.net/npm/hls.js@latest"></script>

地址请看 https://www.npmjs.com/package/hls.js/v/canary

引入上面那个文件

vue通过video.js解决m3u8视频播放格式的方法

只需要写这么多,然后再mounted生命周期调用,但是这个没有video.js样式好看,都可以解决播放不了m3u8视频的格式问题。

以上都是来解决m3u8视频播放不了的问题,

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
面向对象的javascript(笔记)
Oct 06 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
Feb 02 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
详解AngularJS如何实现跨域请求
Aug 22 Javascript
JavaScript 字符串常用操作小结(非常实用)
Nov 30 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
iframe与主框架跨域相互访问实现方法
Sep 14 Javascript
JS中offset和匀速动画详解
Feb 06 Javascript
Vue中的基础过渡动画及实现原理解析
Dec 04 Javascript
使用原生js编写一个简单的框选功能方法
May 13 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
Sep 25 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
Jul 14 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
Jul 29 #Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
Jul 29 #Javascript
vue前后分离调起微信支付
Jul 29 #Javascript
详解vue-property-decorator使用手册
Jul 29 #Javascript
微信小程序new Date()方法失效问题解决方法
Jul 29 #Javascript
微信小程序 WXML节点信息查询详解
Jul 29 #Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
Jul 29 #Javascript
You might like
php对数组排序代码分享
2014/02/24 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
JavaScript Chart 插件整理
2010/06/18 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
微信小程序slider组件使用详解
2018/01/31 Javascript
Vue中的混入的使用(vue mixins)
2018/06/01 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
JavaScript 中判断变量是否为数字的示例代码
2020/10/22 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
商场经理竞聘演讲稿
2014/01/01 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python