vue3兼容flv和m3u8的插件(hls.js和flv.js)

1.下载插件

js 复制代码
cnpm install hls.js flv.js

导入项目

js 复制代码
import Hls from 'hls.js'
import flvjs from 'flv.js'

使用

js 复制代码
<script setup>
	// m3u8格式视频使用变量
    const player = ref(null)
    const video = ref(null)
    // flv格式视频使用
    const videoRef = ref(null)
    let flvPlayer = null
    // 这个变量用来判断是哪个格式视频就进入哪个(默认m3u8)
    let flag = ref(true)
	onUnmounted(() => {
      // 在页面刚加载就显示视频
         // 这个是视频链接
        // m3u8地址:https://gc2ksc.v.kcdnvip.com/gc/zsslsjjfsd_1/index.m3u8?BR=md&region=shanghai
        // flv地址:http://video.epaper.pybtv.cn:8080/live/rtmp_live_demo.flv

        // 固定链接
        let videosrc = ref("http://video.epaper.pybtv.cn:8080/live/rtmp_live_demo.flv")
        // 下面是通过请求获得的链接(动态显示)
        // let videosrc = ref(gameScreenList.gameInfo.live_event)
        // 截取链接,判断是什么格式的视频(判断格式让对应显示)
        flag.value = videosrc.value.includes(".m3u8")// 只能返回true或者false
        gameScreenList.gameLivePlayFlag = false
        if (flag.value) {
          if (Hls.isSupported()) {
            var hls = new Hls()
            hls.loadSource(videosrc.value)
            hls.attachMedia(video.value)
            hls.on(Hls.Events.MANIFEST_PARSED, function () {
              video.value.play()
            })
          } else if (video.canPlayType('application/vnd.apple.mpegurl')) {
            video.value.src = videosrc.value
            video.addEventListener('loadedmetadata', function () {
              video.value.play()
            })
          }
        } else {
          // 创建 FLV 播放器实例
          flvPlayer = flvjs.createPlayer({
            type: 'flv',
            url: videosrc.value, // 替换为实际的 FLV 视频 URL
          })
          console.log('flvPlayer', flvPlayer)
          // 绑定 FLV 播放器到 <video> 标签
          flvPlayer.attachMediaElement(videoRef.value)
          // 初始化 FLV 播放器
          flvPlayer.load()
          flvPlayer.play()
        }
    })
<script>
<template>
<!-- m3u8格式视频展示 -->
<video
   ref="video"
   class="videoElement"
   autoplay
   controls
   muted
   v-show="flag === true"
   ></video>
<!-- flv格式视频展示 -->
<video
   ref="videoRef"
   v-show="flag === false"
   autoplay
   muted
   class="videoElement"
   controls
   ></video>
</template>
相关推荐
iiiiyu12 小时前
常用API(SimpleDateFormat类 & Calendar类 & JDK8日期 时间 日期时间 & JDK8日期(时区) )
java·大数据·开发语言·数据结构·编程语言
故事和你9112 小时前
洛谷-数据结构1-4-图的基本应用2
开发语言·数据结构·算法·深度优先·动态规划·图论
qq_120840937113 小时前
Three.js 工程向:Clock、deltaTime 与固定步长主循环
开发语言·javascript·ecmascript
小菜同学爱学习13 小时前
夯实基础!MySQL数据类型进阶、约束详解与报错排查
开发语言·数据库·sql·mysql
源码站~13 小时前
基于机器学习的社交媒体舆情分析系统
开发语言·python
用户114818678948413 小时前
Vosk-Browser 实现浏览器离线语音转文字
前端·javascript
jieyucx13 小时前
Go 语言零基础入门:编写第一个 Hello World 程序
开发语言·后端·golang
军军君0113 小时前
数字孪生监控大屏实战模板:云数据中心展示平台
前端·javascript·vue.js·typescript·前端框架·es6·echarts
沐知全栈开发13 小时前
Rust 数据类型
开发语言
吴声子夜歌13 小时前
Vue3——使用axios实现Ajax请求
前端·javascript·ajax·axios