Vue中使用Hls.js进行视频直播的播放

HLS.js使用文档

1、安装组件:

javascript 复制代码
npm install hls.js --save

2、引入组件:

javascript 复制代码
import Hls from 'hls.js'

3、使用组件:

javascript 复制代码
// DOM:
<video id="video" controls loop="false"></video>
// DATA:
let hls = null // 定义的hls对象
let url = '' // 这个是直播视频流的地址
// 视频加载
let video = document.getElementById('video') // 定义挂载节点
if(Hls.isSupported()) { 
   hls = new Hls();
   hls.loadSource(url); // 设置播放路径
   hls.attachMedia(video); // 解析到video标签上
   hls.on(Hls.Events.MANIFEST_PARSED, function () {
       video.play(); // 播放视频
   });
} else if (video.canPlayType('application/vnd.apple.mpegurl')) { // 如果浏览器原生支持HLS
   video.src = url;
   video.addEventListener('loadedmetadata', function () {
       video.play();
   });
}
// 最后离开页面的时候,记得销毁
onUnmounted(() => {
 if (hls) {
   hls.destroy();
 }
});

4、 如果视频加载不出来导致的黑屏,问题定位:

① 检查 包裹video组件外层的div使用的是v-show控制显隐,而不是v-if

② 检查 video 组件是否设置了宽高。

③ 检查 挂载节点是否加载完成,可以采用使用setTimeout延迟加载。

相关推荐
怪奇云呼军14 小时前
知识库也会注入指令?闪电智能VoiceAgent 如何防住 Prompt Injection
人工智能·python·算法·云计算·音视频
YuJie14 小时前
JSBridge 基础知识
前端·javascript
默_笙14 小时前
🍕 后端接口还没写好,前端已经跑起来了?Mock 数据 + axios 接口层,前后端再也不互相"等"
前端·javascript
EasyDSS15 小时前
开会不用装App:私有化音视频系统EasyDSS即时视频会议,浏览器点开就能聊,AI帮你写纪要
人工智能·音视频
爱勇宝15 小时前
客户只想看个页面,我却做了一个静态演示发布系统
前端·javascript·后端
公子小六16 小时前
基于.NET的Windows窗体编程之WinForms音频控件
windows·microsoft·c#·.net·音视频·winforms
见山是山-见水是水17 小时前
鸿蒙版 Flutter Video 视频播放组件:播放控制、全屏切换与倍速播放
flutter·音视频·harmonyos
界面开发小八哥18 小时前
界面控件DevExpress Blazor v26.1新版亮点 - Navigation(导航)
javascript·.net·界面控件·blazor·devexpress·ui开发
Claire_8818 小时前
从视频字幕到知识图谱:基于大语言模型的自动思维导图生成工具调研
语言模型·音视频·知识图谱
hz5678919 小时前
视频会议远程终端选型要点与部署实践
硬件架构·音视频·信息与通信·智能硬件