vue中使用videojs播放rtmp流视频

首先npm安装videojs

npm install video.js --save

然后页面引入video.js相关内容

import videojs from "video.js";
import "video.js/dist/video-js.css";

页面html代码

<video 
    id="my-player" 
    class="video-js vjs-default-skin" 
    preload="auto" 
    data-setup="{&quot;html5&quot; : { &quot;nativeTextTracks&quot; : false }}"
    >
</video>

进行播放代码

this.videoPlayer = videojs("my-player");//关联video的id
this.videoPlayer.src({
		type: "rtmp/flv",
		src:videoUrl//要播放的视频流url
});
this.videoPlayer.play();//进行播放

在离开页面的时候要对video进行销毁,要不然控制台会报错

if(this.videoPlayer !=null){ //判断是否已经初始化视频
    this.videoPlayer.dispose(); //销毁video
}
	  

也可以对视频进行重置

this.videoPlayer.reset(); //重置video

因为播放rtmp实时视频流时需要对Flash进行允许,所以播放前要检查是否已经允许

### 在 Vue3 中集成 Video.js 播放 RTMP 视频 为了在 Vue3 项目中成功使用 Video.js 播放 RTMP 媒体,需按照特定程操作。首先,在项目依赖项中加入必要的库文件。 #### 安装所需依赖 通过 npm 或 yarn 来安装 `video.js` 及其扩展插件 `videojs-flash`: ```bash npm install video.js videojs-flash --save ``` 或者对于使用 Yarn 的开发者来说, ```bash yarn add video.js videojs-flash ``` 这一步骤确保了开发环境具备处理 Flash 技术的能力来支持 RTMP 协议[^4]。 #### 导入样式表和初始化 Player 组件 接着,在项目的入口 JavaScript 文件或是全局样式文件里导入 Video.js 默认主题以及自定义的主题 CSS 文件: ```javascript // main.js or equivalent entry file import 'video.js/dist/video-js.css'; import 'vue-video-player/src/custom-theme.css'; // 如果有定制化需求的话可以替换为自己的css路径 ``` 随后创建一个新的 Vue 组件用于承载视频播放器实例,并在其内部完成对 Video.js API 调用的相关逻辑设置。 #### 创建并配置 VideoPlayer 组件 下面是一个完整的示例代码片段展示如何构建这样一个组件: ```vue <template> <div id="app"> <!-- 使用 video 标签作为容器 --> <video ref="myVideoPlayer" class="video-js vjs-default-skin"></video> </div> </template> <script setup> import { onMounted, ref } from "vue"; import videojs from "video.js"; require("videojs-flash"); const myVideoPlayer = ref(null); let player; onMounted(() => { // 初始化 Video.js 实例 player = videojs(myVideoPlayer.value, { controls: true, autoplay: false, preload: "auto", fluid: true, sources: [ { type: "rtmp/mp4", // 设置源类型为 RTMP src: "rtmp://your.rtmp.server/path/to/stream" } ], techOrder: ["flash"], // 明确指定优先采用 flash 技术加载资源 }); // 添加事件监听器或其他交互功能... }); // 清理工作:当组件卸载时销毁 player 对象防止内存泄漏 defineExpose({ beforeUnmount() { if (player) { player.dispose(); } }, }); </script> <style scoped> /* 自定义样式 */ .video-js { width: 100%; height: auto; } </style> ``` 上述代码展示了如何利用 Video.js 结合 Flash 插件实现在现代浏览器环境下兼容 RTMP 协议的功能[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值