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


    1.下载插件

    cnpm install hls.js flv.js
    
    • 1

    导入项目

    import Hls from 'hls.js'
    import flvjs from 'flv.js'
    
    • 1
    • 2

    使用

    <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®ion=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 播放器到 
              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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
  • 相关阅读:
    springboot+网络空间安全实验教学中心门户网站 毕业设计-附源码191220
    U-net网络学习记录
    Go语言数据结构-堆
    vscode常用主题推荐
    高衍射效率的偏振无关透射光栅的分析与设计
    js数据类型判断的五种方法及归纳。
    CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果
    【CNN记录】pytorch中argMax、argMin
    【机器学习教程】五、支持向量机(Support Vector Machines)
    36、Flink 的 Formats 之Parquet 和 Orc Format
  • 原文地址:https://blog.csdn.net/weixin_68658847/article/details/133039700