视频融合 hls流如何对接

很多人第一次听到视频融合这个词语吧,尤其是前端开发工程师。 很多IT公司项目都很少做视频融合的功能,那到底如何去对接呢?让我们带着这个疑问去看下面的讲解吧!!!!

接下来我会在V3项目中去讲解如何对接(V2一样的 只是使用方法不同)

问:hls流是什么呢? 答:HLS,英文全称为:HTTP Live Streaming,由苹果公司提出,它是基于Http的流媒体网络传输协议,主要传输TS格式流,最大的特点是安卓、苹果都能兼容,通用性强,而且码流切换流畅,满足不同网络、不同画质的用户播放需要,但是因为该种视频流协议也存在较为致命的缺陷,那就是网络延时太高。主要用于PC和Apple终端的音视频服务。包括一个m3u8的索引文件,TS媒体分片文件和key加密串文件。 问:那我们如何去拉去这个流进行播放呢? 答:看完下面的使用方法就了解了。

接下来我们进入对接吧!

我们首先需要先创建一个video标签来做视频播放窗口载体

xml 复制代码
<template>
  <div class="home">
    <video ref="videoElementRef" id="videoElement" controls muted style="width: 500px; height: 500px; object-fit: fill"></video>
  </div>
</template>

页面出现video载体了 我们使用的是hls.js npm 包 所以我们先下载npm包(下面两种都可) npm install hls.js yarn add hls.js 等待安装中......

安装完后我们需要引入注册

scss 复制代码
import {ref, onBeforeUnmount, onMounted } from 'vue'
import hlsJs from 'hls.js'

const videoUrl = ref('http://kbs-dokdo.gscdn.com/dokdo_300/_definst_/dokdo_300.stream/playlist.m3u8')  // 视频流
const videoElementRef = ref() // 载体
const hlsjs = ref() // 存储体

const hlsshow = () => {
  console.log(videoElementRef.value)
  if (hlsJs.isSupported()) {
    hlsjs.value = new hlsJs() // new一个hls 解析
    hlsjs.value.loadSource(videoUrl.value) //设置播放路径
    hlsjs.value.attachMedia(videoElementRef.value) //解析到video标签上
    hlsjs.value.on(hlsJs.Events.MANIFEST_PARSED, () => {
      videoElementRef.value.play()
      console.log('加载成功')
    })
    hlsjs.value.on(hlsJs.Events.ERROR, (event, data) => {
      // 监听出错事件
      console.log('加载失败')
    })
  } else {
    return
  }
}

const closeVideo = () => {
  if (hlsjs.value && videoElementRef.value) {
    // 销毁  注意  组件销毁时 一定要将流销毁掉
    videoElementRef.value.pause()
    hlsjs.value.destroy()
    hlsjs.value = null
  }
}

onBeforeUnmount(() => {
  closeVideo()
})

onMounted(()=>{
  hlsshow()
})

这样我们的视频就可以正常拉流播放了

相关推荐
weixin_493503673 小时前
Vue3 前端生成 PDF:会员证书与活动签到表的三种打印方案与踩坑记录
前端·pdf·状态模式
尾善爱看海6 小时前
前端算法与手写题集
前端·算法
徐小夕6 小时前
JitWord 4.0 万字分享:从协同工具到AI Word操作系统,聊聊3年产品创业史
前端·vue.js·后端
萧鼎8 小时前
Python 高性能Web框架神器 FastAPI:自动生成API文、基于Pydant、异步请求处理全搞定
前端·python·fastapi
IT_陈寒9 小时前
Redis误用keys命令把生产环境搞崩了,血的教训
前端·人工智能·后端
计算机魔术师9 小时前
5000亿估值冲刺科创板,DeepSeek 为何急着上市?
前端
我血条子呢9 小时前
前端解析word方案
前端·word
kyriewen9 小时前
我用 AI 写完一个需求后才发现,最难的不是 prompt,而是验收
前端·程序员·ai编程
申行9 小时前
Vue 3 + DYMO Connect Framework 实战:从标签模板到打印服务的完整实现
前端
两只羊ovo9 小时前
Vue 3 + DeepSeek 流式输出实战:从“干等”到“打字机”体验
前端·vue.js