Vue3项目接入萤石云及初始化多个播放器

前期准备工作

注册萤石云开放平台账号,https://open.ys7.com/cn/s/index

设备要支持萤石云或者海康威视协议,也就是这俩个牌子的设备

接下来正式开始接入:

  • 安装官方视频解析工具
  • 导入项目初始化播放器

pnpm install ezuikit-js

import EZUIKit from ‘ezuikit-js’

完整代码如下:

<!-- 视频监控 -->
<template>
	<div class="video">
		<div class="video-item">
			<div class="item">
				<div class="home" ref="viewtools">
					<div id="video-container1"></div>
				</div>
			</div>
			<div class="item">
				<div class="home" ref="viewtoolTwo">
					<div id="video-container2"></div>
				</div>
			</div>
		</div>
	</div>
</template>

<script setup>
import { ref, onMounted } from 'vue'
import EZUIKit from "ezuikit-js";
let ezvizPlayOne = ref(null);
let ezvizPlayTwo = ref(null);
let viewtools = ref();
let viewtoolTwo = ref();
function autoVideoOne(params) {
    // 获取父节点的宽高
	let divW = viewtools.value.clientWidth
	let divH = viewtools.value.clientHeight
	if (ezvizPlayOne.value !== null) {
		return;
	}
	//获取萤石token
	ezvizPlayOne.value = new EZUIKit.EZUIKitPlayer({
		autoplay: true,  // 默认播放
		//视频播放包裹元素
		id: "video-container1",
		//萤石token
		accessToken: "at.b5a0ocvra1035des5cmq1f6h0yvc3soe-4qqvr8a044-16tx7jj-qndmey3xw",
		// ezopen://open.ys7.com/${设备序列号}/{通道号}.live
		url: "ezopen://open.ys7.com/D03798715/1.hd.live", // 播放地址
		template: "security", // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
		// header: ['capturePicture', 'zoom'], // 如果templete参数不为simple,该字段将被覆盖
		plugin: ['talk'], // 加载插件,talk-对讲
		// 视频下方底部控件
		footer: ["talk", "broadcast", "hd", "fullScreen"], // 如果template参数不为simple,该字段将被覆盖
		footer: ['talk', 'hd', 'fullScreen'], // 如果template参数不为simple,该字段将被覆盖
		audio: 0, // 是否默认开启声音 0 - 关闭 1 - 开启
		// openSoundCallBack: data => console.log("开启声音回调", data),
		// closeSoundCallBack: data => console.log("关闭声音回调", data),
		// startSaveCallBack: data => console.log("开始录像回调", data),
		// stopSaveCallBack: data => console.log("录像回调", data),
		// capturePictureCallBack: data => console.log("截图成功回调", data),
		// fullScreenCallBack: data => console.log("全屏回调", data),
		// getOSDTimeCallBack: data => console.log("获取OSDTime回调", data),
		width: divW,
		height: divH
	})
}
function autoVideoTwo(params) {
	let divW = viewtoolTwo.value.clientWidth
	let divH = viewtoolTwo.value.clientHeight
	if (ezvizPlayTwo.value !== null) {
		return;
	}
	//获取萤石token
	ezvizPlayTwo.value = new EZUIKit.EZUIKitPlayer({
		autoplay: true,  // 默认播放
		//视频播放包裹元素
		id: "video-container2",
		//萤石token
		accessToken: "at.b5a0ocvra1035des5cmq1f6h0yvc3soe-4qqvr8a044-16tx7jj-qndmey3xw",
		// ezopen://open.ys7.com/${设备序列号}/{通道号}.live
		url: "ezopen://open.ys7.com/D35970858/1.hd.live", // 播放地址
		template: "security", // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版;
		// header: ['capturePicture', 'zoom'], // 如果templete参数不为simple,该字段将被覆盖
		plugin: ['talk'], // 加载插件,talk-对讲
		// 视频下方底部控件
		footer: ["talk", "broadcast", "hd", "fullScreen"], // 如果template参数不为simple,该字段将被覆盖
		footer: ['talk', 'hd', 'fullScreen'], // 如果template参数不为simple,该字段将被覆盖
		audio: 0, // 是否默认开启声音 0 - 关闭 1 - 开启
		// openSoundCallBack: data => console.log("开启声音回调", data),
		// closeSoundCallBack: data => console.log("关闭声音回调", data),
		// startSaveCallBack: data => console.log("开始录像回调", data),
		// stopSaveCallBack: data => console.log("录像回调", data),
		// capturePictureCallBack: data => console.log("截图成功回调", data),
		// fullScreenCallBack: data => console.log("全屏回调", data),
		// getOSDTimeCallBack: data => console.log("获取OSDTime回调", data),
		width: divW,
		height: divH
	})
}
onMounted(() => {
	autoVideoOne();
	autoVideoTwo();
})

</script>
<style lang="scss" scoped>
.video {
	width: 100%;
	height: 80%;

	.video-item {
		display: flex;
		padding: 1%;

		.item {
			flex: 1;
			height: 40vh;
			margin: 0 1%;

			.home {
				width: 100%;
				height: 100%;
			}

		}
	}
}
</style>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

渔舟唱晚@

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

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

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

打赏作者

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

抵扣说明:

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

余额充值