vue中使用video.js播放m3u8格式的视频

文章目录

  • 一、前言
    • 1.1、[官网](https://docs.videojs.com/)
    • 1.2、[`Github`](https://github.com/videojs/video.js)
  • 二、实现
    • 2.1、安装依赖
    • 2.2、`main.js`
    • 2.3、`video.vue`
    • 2.4、其它
  • 三、最后

一、前言

实时推送的视频流的需求,vue中就可以使用video.js播放m3u8格式的视频流

1.1、官网

在这里插入图片描述

1.2、Github

在这里插入图片描述

二、实现

2.1、安装依赖

yarn add video.js
yarn add videojs-contrib-hls // 这是播放hls流需要的插件
yarn add videojs-flash // 这是播放rtmp流需要的插件
yarn add mux.js // 在vue项目中,若不安装它可能报错

2.2、main.js

引入如下依赖:

import "video.js/dist/video-js.css"; // 引入video.js的css
import hls from "videojs-contrib-hls"; // 播放hls流需要的插件
import Vue from "vue";
Vue.use(hls);

2.3、video.vue

抽离出来一个视频组件

<template>
  <video id="videoPlayer" class="video" muted width="100%" height="580px" />
</template>

<script>
import Videojs from 'video.js'

export default {
  data() {
    return {
      player: null
    }
  },
  beforeDestroy() {
    if (this.player) {
      this.player.dispose() // Removing Players,该方法会重置videojs的内部状态并移除dom
    }
  },
  activated() {
    if (this.player) {
      this.player.play()
    }
  },
  deactivated() {
    if (this.player) {
      this.player.pause()
    }
  },
  mounted() {
    this.initVideo()
  },
  methods: {
    initVideo(url) {
      if (!this.player) {
        this.player = Videojs('videoPlayer', {
          autoplay: true, // 设置自动播放
          muted: true, // 设置了它为true,才可实现自动播放,同时视频也被静音 (Chrome66及以上版本,禁止音视频的自动播放)
          preload: 'auto', // 预加载
          controls: false // 显示播放的控件
        })
      }
      this.player.src([{
        src: url,
        type: 'application/x-mpegURL' // 告诉videojs,这是一个hls流
      }])
    }
  }
}
</script>

<style lang="scss" scoped>
.video, video {
  width: 100%;
  height: 580px;
}
/deep/ .vjs-loading-spinner {
  position: relative;
  .vjs-control-text {
    opacity: 0;
  }
}
</style>

2.4、其它

rtmp流的话,需再安装依赖videojs-flash

// main.js
import flash from "videojs-flash"; // 播放rtmp流需要的插件
import Vue from "vue";
Vue.use(flash);

组件中设置src时需要注意:

this.player.src([{
    src: url,
    type: 'rtmp/flv' // 告诉videojs这是一个rtmp流视频
}])

三、最后

本人每篇文章都是一字一句码出来,希望大佬们多提提意见。顺手来个三连击,点赞👍收藏💖关注✨。创作不易,给我打打气,加加油☕

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/227582.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 Mac 上使用浅色或深色外观

在 Mac 上&#xff0c;选取苹果菜单 >“系统设置”&#xff0c;然后点按边栏中的“外观” 。&#xff08;你可能需要向下滚动。&#xff09;选择右侧的“浅色”、“深色”或“自动”。 “浅色”表示不会发生变化的浅色外观。 “深色”表示不会发生变化的深色外观。“深色模式…

火狐浏览器无法打开有道云笔记网页解决

User-Agent Switcher and Manager 安装插件&#xff1a;User-Agent Switcher and Manager 可以直接在火狐插件管理中搜索&#xff0c;或者打开 https://addons.mozilla.org/zh-CN/firefox/addon/user-agent-string-switcher/?utm_sourceaddons.mozilla.org&utm_mediumre…

Spring MVC详解、静态资源访问、拦截器

1. Spring MVC概述 1.1 Spring MVC是什么 SpringMVC是Spring的一个模块&#xff0c;是一个基于MVC设计模式的web框架。 1.2 Spring MVC执行流程。 1.3 组件分析 前端控制器&#xff08;默认配置&#xff09;Dispatcher Servlet 作用&#xff1a;只负责分发请求。可以很好的对…

做题笔记:SQL Sever 方式做牛客SQL的题目--查询每天刷题通过数最多的前二名用户

----查询每天刷题通过数最多的前二名用户id和刷题数 现有牛客刷题表questions_pass_record&#xff0c;请查询每天刷题通过数最多的前二名用户id和刷题数&#xff0c;输出按照日期升序排序&#xff0c;查询返回结果名称和顺序为&#xff1a; date|user_id|pass_count 表单创建…

二十一章网络通信

计算机网络实现了多台计算机间的互联&#xff0c;使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接的不同计算机上运行的程序&#xff0c;这些程序借助于网络协议&#xff0c;相互之间可以交换数据。编写网络应用程序前&#xff0c;首先必须明确所要使用的网络协议…

如何搭建废品上门回收小程序

如今&#xff0c;随着环境保护意识的增强&#xff0c;废品的回收和再利用变得越来越重要。为了方便人们进行废品回收&#xff0c;搭建一个废品上门回收的小程序成为了一个不错的选择。本文将介绍如何从零开始搭建一个废品上门回收小程序。 …

JavaSE50题:16.(递归)按顺序打印一个数字的每一位(例如 1234,打印出 1 2 3 4)

文章目录 概述代码执行过程执行结果 概述 按顺序打印一个数字的每一位&#xff08;例如 1234&#xff0c;打印出 1 2 3 4&#xff09;。 因为我们是要按顺序打印1 2 3 4&#xff0c;所以&#xff0c;递归过程的流程图&#xff0c;如图所示&#xff1a; 代码 public static v…

HL 7 是什么

HL7 指的是一组用于在各种医疗服务提供者所使用之软件应用程序之间&#xff0c;传输临床和管理数据的国际标准。这些标准侧重于应用层&#xff0c;即OSI模型中的“第7层”。 HL7标准由国际标准组织Health Level Seven International制作&#xff0c;并被美国国家标准协会和国际…

yum源不起作用_yum无法安装程序_Linux默认源替换---Linux工作笔记067

今天在一台机器上进行安装yum install的时候提示,yum不可用,这时候,折腾了一会 后来更换了默认源就可以了. 首先: 可以看到原来的里面有个 yum.repos.d 里面放了很多源,但是这些源是不可以联网的. 是内网的源,所以,我对他进行了 mv yum.repos.d yum.repos.d.bak 重命名 然…

pytorch优化之SAM优化器

1. SAM介绍 人机验证 2. 案例 ❀精度优化❀优化策略1&#xff1a;网络SAM优化器_夏天&#xff5c;여름이다的博客-CSDN博客文章浏览阅读3.3k次&#xff0c;点赞10次&#xff0c;收藏30次。精度优化策略&#xff1a;SAM:Sharpness AwarenessMinimization锐度感知最小化论文&…

实验3.5 路由器的单臂路由配置

实验3.5 路由器的单臂路由配置 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.SWA的基本配置2.RA的基本配置3.在RA上查看接口状态 六、任务验收七、任务小结 一、任务描述 某公司对部门划分了需VLAN之后&#xff0c;发现两个部门之间无法通信&#xff0c;但…

模块一:双指针——1089.复写零

文章目录 题目解析算法原理异地原地 代码实现 题目解析 题目链接&#xff1a;1089.复写零 这题的暴力解法还是很简单的&#xff0c;不过这道题因为加了两个限制之后&#xff0c;多了一些细节需要去处理。我们通过一个例子来讲解这道题目&#xff1a; 在这个示例中&#xff0…

Python----多态

1、什么是多态 多态指的是一类事物有多种形态。 定义&#xff1a;多态是一种使用对象的方式&#xff0c;子类重写父类方法&#xff0c;调用不同子类对象的相同父类方法&#xff0c;可以产生不同的执行结果。 ① 多态依赖继承 ② 子类方法必须要重写父类方法 首先定义一个父类…

NumPy学习:NumPy(Numerical Python)基础(一)

1.什么是NumPy NumPy 是 Python 中用于科学计算的基础包。 它是一个 Python 库&#xff0c;提供多维数组对象&#xff0c; 各种派生对象&#xff08;例如掩码数组和矩阵&#xff09;&#xff0c;以及 用于对阵列进行快速操作的各种例程&#xff0c;包括 数学、逻辑、形状操作、…

CTF-misc(1)图片隐写

笔记目录 渗透测试工具(1)wireshark渗透测试工具(2)Nmap渗透测试工具(3)BurpsuiteAWD比赛(1)AWD入门攻略大纲CTF-Web(2)SQL注入CTF-Web(3)文件上传漏洞 图片隐写目录 (1)GIf和二维码隐写 二维码补全 二维码绘图 Gif规律分析 (2)文本附加图片隐写 (3)IHDR文件头修复图片宽高 (…

【深度学习】强化学习(一)强化学习定义

文章目录 一、强化学习问题1、交互的对象1. 智能体&#xff08;Agent&#xff09;2. 环境&#xff08;Environment&#xff09; 2、强化学习的基本要素1. 状态 &#x1d460;2. 动作 &#x1d44e;3. 策略 &#x1d70b;(&#x1d44e;|&#x1d460;)4. 状态转移概率 &#x1…

深度学习训练过程自查:为什么我的模型不收敛/表现不佳?

代码终于写完了&#xff0c;bug 处理好了&#xff0c;终于跑起来了。但是模型不收敛。或者收敛了&#xff0c;但是加 trick 也表现不良。看着这个精心编写的辣鸡模型&#xff0c;从内心深处生出一股恨铁不成钢的悲愤。 于是开始思考&#xff0c;为什么&#xff1f;哪里出了问题…

上海亚商投顾:沪指探底回升微跌 AI概念股全线反弹

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 大指数早间震荡调整&#xff0c;午后探底回升集体翻红&#xff0c;临近尾盘又小幅走弱。AI概念股全线反弹&…

2024年值得关注的8个未来数据库

2024年值得关注的8个未来数据库 关系型数据库管理系统在数据库技术领域占据主导地位已经多年了。当SQL在1970年代首次出现时&#xff0c;关系型数据库管理系统的使用和受欢迎程度迅速提升。很快&#xff0c;MySQL成为了大多数公司和团队首选的数据库。 然而&#xff0c;2023年…

2023下软件设计师备考分享(机考改革)

目录 一、机考最大的感受&#xff08;⭐⭐⭐&#xff09; 1、个人情况说明 2、试卷难易程度 3、机考作答情况 4、考场内部情况 二、学习备考方案&#xff08;⭐⭐⭐&#xff09; 1、大纲要求 2、b站up主zst 3、准备工作 4、复习计划 三、软件设计师笔记&#xff08;…