Vue项目 播放m3u8格式视频

这篇博客介绍了如何在项目中安装并使用video.js及videojs-contrib-hls库来播放HLS视频。首先,通过npm安装了video.js和videojs-contrib-hls依赖。接着,在main.js中引入了所需的样式和JS文件,并配置了视频的基本属性如自动播放、控件显示等。然后,在HTML中创建了一个video标签,并应用了video-js的默认皮肤。最后,展示了如何设置视频源并播放HLS流。

1.安装依赖

npm install --save video.js;
npm install --save videojs-contrib-hls;

2.在main.js引入全局样式和js文件,或者在需要使用的单页面按需引入

import 'video.js/dist/video-js.css'
import videojs from 'video.js';
import 'videojs-contrib-hls'

3.页面里面使用

注意:一定要加 class=“video-js vjs-default-skin”,要不然样式会非常难看

<video id="singleVideo" preload="none" class="video-js vjs-default-skin" ></video>
	//使用
          let singlePlayer = videojs("singleVideo", {
            autoplay: true,//自动播放
            controls: true,//控件显示
            width: "440",//视频框宽度
            height: "264",//视频框高度
          });
          let res ="http://61.175.121.73:83/pag/10.13.7.2/7302/33052182001320012936/0/MAIN/TCP/live.m3u8";
          if (res) {
            singlePlayer.src({ src: res, type: "application/x-mpegURL" });
            singlePlayer.play();
          }

效果:
在这里插入图片描述

### 实现 Vue 3 中播放 M3U8 格式视频 为了在 Vue 3 项目中成功播放 M3U8 格式视频,推荐采用 `video.js` 和其 HLS 插件组合的方式。以下是具体的操作流程: #### 安装必要的依赖包 通过 npm 或 yarn 来安装所需的软件包,包括 Video.js 及其 CSS 文件以及支持 HTTP Live Streaming (HLS) 的插件。 ```bash npm install video.js videojs-contrib-hls --save ``` 或者如果使用 Yarn: ```bash yarn add video.js videojs-contrib-hls ``` #### 创建并配置 Video 组件 创建一个新的 Vue 单文件组件用于封装 Video.js 播放器逻辑,在此示例中命名为 `VideoPlayer.vue`。 ```html <template> <div ref="player"></div> </template> <script setup lang="ts"> import { onMounted, onBeforeUnmount } from 'vue'; import videojs from 'video.js'; import 'video.js/dist/video-js.css'; // 导入样式表 require('videojs-contrib-hls'); let player; onMounted(() => { const el = document.createElement('video'); Object.assign(el, { id: 'my-video', className: 'video-js vjs-default-skin', controls: true, preload: 'auto' }); el.setAttribute('data-setup', '{}'); el.innerHTML = `<source src="${props.src}" type='application/x-mpegURL' />`; $refs.player.appendChild(el); player = videojs('#my-video'); }); const props = defineProps({ src: String }) onBeforeUnmount(() => { if (player !== undefined && typeof(player.dispose) === "function") { player.dispose(); } }); </script> ``` 这段代码定义了一个简单的 Vue 组件,它接收一个属性 `src` 表示要加载的 M3U8 流地址,并利用生命周期钩子函数初始化和销毁 Video.js 播放实例[^4]。 #### 使用自定义组件 最后一步是在应用程序的主要布局或其他任何地方导入并注册这个新创建的组件,以便能够实际调用该功能。 ```javascript // main.ts or app entry file import App from './App.vue'; import VideoPlayer from '@/components/VideoPlayer.vue'; createApp(App).component('VideoPlayer', VideoPlayer).mount('#app'); ``` 现在可以在模板里像下面这样简单地使用 `<VideoPlayer>` 标签来显示视频了: ```html <!-- SomeComponent.vue --> <template> <!-- ... other elements... --> <VideoPlayer :src="'http://example.com/path/to/stream.m3u8'" /> <!-- ... more content ... --> </template> ``` 以上就是在 Vue 3 应用程序内集成 M3U8 视频流的方法概述。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sea9528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值