当前位置: 首页 > news >正文

vue3中播放m3u8,附测试网址

说明

关于m3u8的播放,网上有各种库供大家参考:

  • vue-video-player
  • videojs-contrib-hls
  • video.js
  • hls.js
  • xgplayer-hls(西瓜视频官方的)

如何选择

经小编测试,功能最强的就是hls.js了,同一个m3u8的地址,其他的库要么不能播放、要么就是速度慢,用hls.js基本是秒出,解析速度相当快
但是其他的几种库也各有优点,比如:

  • vue-video-player:支持多宫格播放(4宫格,9宫格)
  • xgplayer-hls:支持预览、超清、高清、标清、支持下载……

hls.js用法

预览地址(大家可用来测试m3u8)m3u8测试预览地址

  1. /public文件夹下放入hls.min.js
  2. index.html中引入:
    <script type="text/javascript" src="/public/hls.min.js"></script>
  1. 示例组件vue3:
<template><div class="app-container"><div style="margin-bottom: 8px;"><el-input v-model="videoUrl" style="width: 70%;" /><el-button @click="playHLS(videoUrl)" style="margin-left: 8px;">播放</el-button></div><videoid="hls"width="1000"height="600"class="img-responsive video-js vjs-default-skin"controlspreload="auto":autoplay="true"mutedref="videoRef"></video></div>
</template><script setup>
import { ref, nextTick, onMounted, onBeforeUnmount } from "vue";const videoRef = ref()
const videoUrl = ref('https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_fmp4/master.m3u8')
let hlsPlayer
const playHLS = (url) => {const video = videoRef.value;if (typeof hlsPlayer !== "undefined") {if (hlsPlayer != null) {hlsPlayer.destroy();}}hlsPlayer = new Hls();hlsPlayer.loadSource(url);hlsPlayer.attachMedia(video);//将视频元素绑定到此 HLS 对象hlsPlayer.on(Hls.Events.MANIFEST_PARSED, function () {video.play();emit("changeIsPlay", true);});hlsPlayer.on(Hls.Events.ERROR, function (eventName, data) {if(data.fatal && data.type !=="networkError") {video.pause();emit("changeIsPlay", false);}});
};onBeforeUnmount(() => {if (typeof hlsPlayer!== "undefined") {hlsPlayer.destroy();}
})
</script>

http://www.mrgr.cn/news/18817.html

相关文章:

  • 涨薪秘籍?40w年薪项目经理力荐,10个项目管理神器大放送!
  • quartz源码-Schedule启动过程分析
  • Java算法之LRUCache缓存实现
  • JVM面试(三)类加载过程
  • 人该怎样活着呢?48
  • 深度学习引介:未来已来
  • CMake编译测试
  • 15年期权停交易的时候究竟发生了什么?期权零门槛开户怎么做?
  • ​​​​​​​《黑神话:悟空》—— 高科技点亮西游神话璀璨之路
  • 免费pdf转word软件,为你整理出8种方法,总有一个适合你
  • DRY原则-用函数和模块化来避免重复代码
  • 2024自动化测试面试真题(附答案)!
  • 分类预测|基于雪消融优化极端梯度提升的数据分类预测Matlab程序SAO-XGBoost 多特征输入多类别输出
  • 【干货】深度学习调参秘籍【表格】
  • 企业数据管理方案-提升效率与决策力的关键
  • 使用Spring Boot拦截器实现时间戳校验以防止接口被恶意刷
  • 《重生到现代之从零开始的C语言生活》—— 指针7
  • 供应链管理平台开发指南:从食堂采购系统源码开始
  • [物理专题]经典浮力题目的Fh图像绘制
  • FTPClient报“Connection refused”的另一种情况