需求描述

支持播放m3u8直播流 + 录屏 视频;同时可以动态更改视频直播地址,新增,删除视频。

实现效果

实现代码

  1. 安装依赖
 npm install video.js --save // 视频播放器插件npm install videojs-contrib-hls  --save // 播放hls流插件npm install @videojs/http-streaming  --save
  1. 具体代码如下:
<template><div id="app"><button @click="addvideourl">新增视频直播</button><button @click="changevideourl(0)">更换视频地址 - 录屏</button><button @click="changevideourl2(1)">更换视频地址 - 直播流</button><button @click="delvideourl(src.length - 1)">删除视频</button><div class="video-div"><videov-for="item in src":id="'video_' + item.id"class="video video-js vjs-default-skin"preload="auto":key="item.id"><source :src="item.src" :type="item.type" /></video></div></div>
</template><script>
import videojs from "video.js";
import "video.js/dist/video-js.css"; //videojs样式
import "videojs-contrib-hls"; //用于支持m3u8
import "@videojs/http-streaming";
export default {data() {return {player: {}, // map对象src: [{type: "application/x-mpegURL",id: "111",src: "https://jxsr-eye.antelopecloud.cn:1443/api/staticResource/v2/video/live.m3u8/538505008?Authorization=eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDExMDAwMDUzOSIsImV4dCI6MTY0MzI1NTgwMTMwNiwidWlkIjoiMTAxMDAzMDAwMjE1IiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDAwMDAxMTA3MTZdLCJ2YWxpZFRpbWUiOm51bGwsIm9wdENlbnRlcklkIjoiMTAwMTAwMDAwMzk5IiwidXNlclR5cGUiOjEwMDcwNCwiaWF0IjoxNjQyOTk2NjAxMzA2fQ.gxhejzqj6Mzi3fU9SjCzZEgT-B6PxSWUgm_1oX0iXvk",},{type: "video/mp4",id: "222",src: "https://ping.mfyke.com/data/video/1.webm",},],};},mounted() {this.videoInit();},methods: {videoInit() {// 播放器初始化this.$nextTick(() => {this.player = {};this.src.forEach((v) => {if (this.player[v.id]) {this.player[v.id].src({ src: this.videoUrl, type: "application/x-mpegURL", });this.player[v.id].load();this.player[v.id].play();} else {this.player[v.id] = videojs("video_" + v.id,{bigPlayButton: false,textTrackDisplay: false,posterImage: true,errorDisplay: false,controlBar: false,muted: true, //静音模式 、、 解决首次页面加载播放。},function () {this.play(); // 自动播放});}});});},//新增addvideourl() {let obj = {id: 333,type: "application/x-mpegURL",src: "https://jxsr-eye.antelopecloud.cn:1443/api/staticResource/v2/video/live.m3u8/538505006?Authorization=eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDExMDAwMDUzOSIsImV4dCI6MTY0MzI1NTgwMTMwNiwidWlkIjoiMTAxMDAzMDAwMjE1IiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDAwMDAxMTA3MTZdLCJ2YWxpZFRpbWUiOm51bGwsIm9wdENlbnRlcklkIjoiMTAwMTAwMDAwMzk5IiwidXNlclR5cGUiOjEwMDcwNCwiaWF0IjoxNjQyOTk2NjAxMzA2fQ.gxhejzqj6Mzi3fU9SjCzZEgT-B6PxSWUgm_1oX0iXvk",};this.src.push(obj);this.videoInit();},//删除视频delvideourl(index = 0) {let v = this.src[index];if (this.player[v.id]) {this.player[v.id].dispose(); // dispose()会直接删除Dom元素 this.src.splice(index, 1);}},// 更换视频地址2changevideourl(index = 0) {let obj = {type: "video/mp4",src: "https://ping.mfyke.com/data/video/1.webm",};let v = this.src[index];if (this.player[v.id]) {this.player[v.id].src({ src: obj.src, type: obj.type });this.player[v.id].load();this.player[v.id].play();}},// 更换视频地址2changevideourl2(index = 1) {let obj = {type: "application/x-mpegURL",src: "https://jxsr-eye.antelopecloud.cn:1443/api/staticResource/v2/video/live.m3u8/538504959?Authorization=eyJhbGciOiJIUzI1NiJ9.eyJvcmdhbml6YXRpb25JZCI6IjEwMDExMDAwMDUzOSIsImV4dCI6MTY0MzI1NTgwMTMwNiwidWlkIjoiMTAxMDAzMDAwMjE1IiwidmFsaWRTdGF0ZSI6MTA0NDA2LCJyb2xlSWQiOlsxMDAwMDAxMTA3MTZdLCJ2YWxpZFRpbWUiOm51bGwsIm9wdENlbnRlcklkIjoiMTAwMTAwMDAwMzk5IiwidXNlclR5cGUiOjEwMDcwNCwiaWF0IjoxNjQyOTk2NjAxMzA2fQ.gxhejzqj6Mzi3fU9SjCzZEgT-B6PxSWUgm_1oX0iXvk",};let v = this.src[index];if (this.player[v.id]) {this.player[v.id].src({ src: obj.src, type: obj.type });this.player[v.id].load();this.player[v.id].play();}},},// 离开页面销毁视频播放器beforeDestroy() {for (let key in this.player) {this.player[key].dispose(); // dispose()会直接删除Dom元素}},
};
</script><style>
.video-div {display: flex;flex-wrap: wrap;
}
.video {width: 500px;height: 500px;margin-top: 2rem;margin-left: 24px;
}
</style>

vue中 使用video.js 播放m3u8直播流相关推荐

  1. Video.js 播放m3u8直播流

    谷歌浏览器全面禁止flash导致直播流无法播放, 通过video.js结合videojs-contrib-hls实现播放m3u8直播流 粘贴到html打开即可 <!DOCTYPE html> ...

  2. m3u8.php怎么调用,怎样使用Vue结合Video.js播放m3u8视频

    这次给大家带来怎样使用Vue结合Video.js播放m3u8视频,使用Vue结合Video.js播放m3u8视频的注意事项有哪些,下面就是实战案例,一起来看一下. 首先,我们需要在vue工程中安装vi ...

  3. dplayer js控制 自动全屏_vue 中使用video.js 实现m3u8视频播放格式

    官方文档:https://docs.videojs.com/tutorial-vue.html H5 的 video 标签不支持m3u8视频播放,所以借助于 video.js 1.video 定义与用 ...

  4. Vue Video.js播放m3u8视频流格式(video+videojs-contrib-hl)

    文章目录 1. Vue+Video.js播放效果图 2. npm安装和引入 3. vue 使用 4. 动态设置video视频的src地址 5. Uncaught (in promise) TypeEr ...

  5. video.js播放rtmp直播源和hls直播源

    看了很多网上的坑,都是无法播放的,这次自己亲测能播放 注意如果是自己制作的源的话,在推流之后要先等一小会才可以播放 video.js播放rtmp源 一定要注意你的Chrome浏览器允许播放flash, ...

  6. Vue+Video.js播放m3u8视频流(海康威视摄像头+RTMP服务+FFmpeg)

    场景 Nginx搭建RTMP服务器+FFmpeg实现海康威视摄像头预览: Nginx搭建RTMP服务器+FFmpeg实现海康威视摄像头预览_BADAO_LIUMANG_QIZHI的博客-CSDN博客 ...

  7. vue+video.js播放.m3u8地址视频

    使用的包 "video.js": "^7.6.6", "videojs-contrib-hls": "^5.15.0", ...

  8. videojs 卡顿_流媒体技术学习笔记之(四)解决问题video.js 播放m3u8格式的文件,根据官方的文档添加videojs-contrib-hls也不行的原因解决了...

    总结: 说明: 测试环境:本测试全部来自阿里云直播和OSS存储点播以及本地服务器直播和点播 播放器:VideoJs 直播: 1.阿里云直播,需要CDN设置HTTP头 2.本地直播需要设置直播访问服务器 ...

  9. uniapp项目引入Dplayer.js以及hls.js用来解析播放m3u8直播流视频文件,文末有项目代码可供下载

    1.下载依赖 npm i dplayer -S npm i hls.js -S 2.vue页面 <template><view class="content"&g ...

最新文章

  1. java怎么建立内部类_语法 - 是否可以在Java静态中创建匿名内部类?
  2. 出道即巅峰,掀起AI领域巨浪的GPT-3,被过誉了吗?
  3. hwclock date
  4. 自定义Visual Studio IntelliTrace 智能跟踪
  5. 数据中心网络组网的不同方案
  6. Eclipse的下载、安装和WordCount的初步使用(本地模式和集群模式)
  7. vba 根据分辨率 调整窗口显示比例_2020 如何选择适合自己的显示器?小白选购电脑显示器必看,附各类型显示器高性价比选购指南分析...
  8. 最新!复旦大学邱锡鹏教授等「Transformers全面综述」论文
  9. 台积电:高雄地震对生产影响比预期略高
  10. linux 下 ffmpeg 库怎么才可以调试
  11. 工厂模式类图梳理笔记
  12. 自动驾驶实习/校招 增补企业名单
  13. R中输出常见位图和矢量图格式总结
  14. Xms Xmx PermSize MaxPermSize 区别
  15. Android打码函数,Android 马赛克(Mosaics)效果
  16. “The file being opened for reading does not exist“-HyperMesh
  17. altium Designer使用方法大总结
  18. 技巧篇:常用的R代码汇总
  19. WIN10系统盘安装提示MBR分区问题解决步骤
  20. flink sql 知其所以然(二)| 自定义 redis 数据维表(附源码)

热门文章

  1. 【解决方案】Fiddler一直提示The system proxy was changed.Click to reenable capture...
  2. [UE4]游戏中服务器切换地图,控制台命令Execute console Command
  3. jsp 知乎_JSP简介
  4. pip 提示证书失效
  5. 数值计算笔记之条件数
  6. string(strtod)——神秘的杂文
  7. Postman实现接口测试(附项目实战)
  8. 给大家来几个辣眼睛的代码(嘿嘿嘿)
  9. HIcon与Icon
  10. 域名解析--详细讲解