news 2026/6/14 23:31:03

使用Vue播放M3U8视频流的方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用Vue播放M3U8视频流的方法

使用Vue播放M3U8视频流的方法

安装依赖
需要安装video.js和videojs-contrib-hls插件,用于解析和播放M3U8格式的视频流。

npm install video.js videojs-contrib-hls

引入并初始化Video.js
在Vue组件中引入Video.js及相关样式,初始化播放器并配置HLS支持。

importvideojsfrom'video.js'import'video.js/dist/video-js.css'import'videojs-contrib-hls'exportdefault{mounted(){this.initVideoPlayer()},methods:{initVideoPlayer(){this.player=videojs(this.$refs.videoPlayer,{autoplay:true,controls:true,sources:[{src:'your-m3u8-url.m3u8',type:'application/x-mpegURL'}]})}},beforeDestroy(){if(this.player){this.player.dispose()}}}

模板部分
在模板中添加video标签作为播放器容器,需设置data-setup属性为空对象以启用Video.js初始化。

<template><div><videoref="videoPlayer"class="video-js vjs-default-skin"width="640"height="360"data-setup="{}"></video></div></template>

样式调整

.video-js{width:100%;max-width:640px;margin:0 auto;}

通过CSS调整播放器尺寸和外观,确保适应页面布局。

注意事项
确保M3U8视频流地址可跨域访问,或配置服务器CORS策略。
移动端可能需要添加playsinline属性以实现内联播放。
若使用HTTPS环境,需确保视频流地址同为HTTPS。

完整组件示例

<template><divclass="video-container"><videoref="videoPlayer"class="video-js"></video></div></template><script>importvideojsfrom'video.js'import'video.js/dist/video-js.css'import'videojs-contrib-hls'exportdefault{props:{src:{type:String,required:true}},mounted(){this.initPlayer()},methods:{initPlayer(){this.player=videojs(this.$refs.videoPlayer,{autoplay:false,controls:true,sources:[{src:this.src,type:'application/x-mpegURL'}]})}},beforeDestroy(){if(this.player){this.player.dispose()}}}</script><stylescoped>.video-container{margin:20px auto;width:80%;}</style>

替代方案(使用hls.js)
若需更轻量级方案,可使用hls.js库直接处理M3U8流。

安装hls.js

npminstallhls.js

实现代码

importHlsfrom'hls.js'exportdefault{data(){return{hls:null}},mounted(){this.loadVideo()},methods:{loadVideo(){constvideoSrc='your-m3u8-url.m3u8'constvideo=this.$refs.videoPlayerif(Hls.isSupported()){this.hls=newHls()this.hls.loadSource(videoSrc)this.hls.attachMedia(video)}elseif(video.canPlayType('application/vnd.apple.mpegurl')){video.src=videoSrc}}},beforeDestroy(){if(this.hls){this.hls.destroy()}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:20:16

Hugging Face官方出免费AI Agent教程!

2024年被称为是AI Agent的元年&#xff0c;经过了一年的酝酿&#xff0c;各类AI Agent的产品方案层出不穷&#xff0c;比如Dify、扣子等等。在未来&#xff0c;AI Agent无疑也会是AI的一块核心领域。&#x1f917;Hugging Face说&#xff0c;现在就是学AI Agent的最好时机&…

作者头像 李华
网站建设 2026/6/15 13:19:06

数智时代,为什么算力成了“新石油”?

当“新石油”这个词第一次被用来形容算力时&#xff0c;很多人并没有真正理解它的分量。但到了 2024—2025 年&#xff0c;这个比喻正在被反复验证。从大模型竞赛、AIGC 应用爆发&#xff0c;到企业全面推进数智化转型&#xff0c;算力&#xff0c;已经从 IT 资源升级为决定产业…

作者头像 李华
网站建设 2026/6/10 15:30:08

Netty的心跳机制怎么实现的?

大家好&#xff0c;我是锋哥。今天分享关于【Netty的心跳机制怎么实现的&#xff1f;】面试题。希望对大家有帮助&#xff1b; Netty的心跳机制怎么实现的&#xff1f; 超硬核AI学习资料&#xff0c;现在永久免费了&#xff01; Netty 的心跳机制是通过 IdleStateHandler 心…

作者头像 李华
网站建设 2026/6/14 11:02:49

MAF快速入门(3)聊天记录持久化到数据库

准备工作在今天的这个案例中&#xff0c;我们创建了一个.NET控制台应用程序&#xff0c;安装了以下NuGet包&#xff1a;Microsoft.EntityFrameworkCore.SqliteMicrosoft.Agents.AI.OpenAIMicrosoft.Extensions.AI.OpenAI我们的配置文件中定义了LLM API的信息&#xff1a;复制代…

作者头像 李华
网站建设 2026/6/14 19:17:24

MobilePerf安卓性能测试工具:从入门到精通的终极指南

MobilePerf安卓性能测试工具&#xff1a;从入门到精通的终极指南 【免费下载链接】mobileperf Android performance test 项目地址: https://gitcode.com/gh_mirrors/mob/mobileperf 想要快速掌握安卓应用性能测试的核心技能却无从下手&#xff1f;MobilePerf作为一款轻…

作者头像 李华