vue使用videoJS播放m3u8视频

JavaScript024

vue使用videoJS播放m3u8视频,第1张

由于项目中的视频返回格式是m3u8,于是选择较为成熟的video.js,这里先贴上官网文档地址 https://docs.videojs.com/

进入可以看到插件的API和使用指南,还包括angularJS、react等框架的使用方法,因为我们项目用的vue框架,这里直接看vue的使用。

npm install --save-dev video.js

安装成功后,在man.ts文件下引入对应的css样式,并进行全局组件注册

到这一步视频就可以播放了,因为我们项目的视频是m3u8格式,在设置sources的时候,type需要设置为 application/x-mpegURL ,目前使用已知支持的视频格式有mp4、rtmp、flv还有目前正在使用的m3u8,其他格式需要各位看官自行搜索是否是否支持了。同时,options可设置的不仅仅是上面的内容,通过文档可以查看其他设置, https://docs.videojs.com/tutorial-options.html#controls 。

我们项目里用到的是实时监控画面,所以需要切换不同的监控点,下面对于切换视频地址贴上简单的示例。

到此,视频地址的切换功能也完成了。因为是实时监控视频,目前还有个问题还没解决,当视频播放到一定时间后,就会存在视频加载问题,会造成视频播放不够流畅,这个问题还在研究中,解决后会继续更新到这篇文章里。由于初次使用videoJS插件,还有很多功能不够熟悉需要继续研究,各位看官也可以直接在评论区进行交流。

前端项目中,有个视频能播放srt字幕并能循环复读指定区间的功能要求,研究了下,思路如下:

1、web端关于视频 都用框架video.js 还挺方便,直接给video 标签初始化,设置宽、高、自动播放、缩略图等,并能监听播放,拖放....

2、将srt 字幕文件 进行读取,并转为对象数组

srt格式为:

转化为对象数组:

[     {sn: "0", startTime: 0.89, endTime: 7.89, content: "For me traveling isn't about visiting the major areas, taking a photo and crossing it:"},

     {sn: "1", startTime: 8.38, endTime: 14.85, content: "It's about understanding and immersing yourself in a different culture"}

   ]

3、监听timeupdate 函数,将转为的字幕数组根据时间线 随时播放出来,将当前时间 player.currentTime() 和字幕初始时间 和 结束时间进行比较

实现为:

4、复读功能 ,还是监听timeupdate 当播放时间超过后,重新设置播放时间为初始时间,实现反复播放

有需求,请互相讨论 Q 1873893691