From 4f7115ed0d5ac6d955d44936cf806ab666f688d2 Mon Sep 17 00:00:00 2001 From: 朱桂飞 <18597012158> Date: 星期四, 23 十一月 2023 15:27:54 +0800 Subject: [PATCH] 集成摄像头 --- src/views/dry/video/index.vue | 271 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 2 files changed, 272 insertions(+), 0 deletions(-) diff --git a/package.json b/package.json index aeec10b..1634a5e 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "echarts-liquidfill": "^3.1.0", "emoji-mart-vue-fast": "^11.1.1", "enquire.js": "^2.1.6", + "ezuikit-js": "^0.7.2", "intro.js": "^5.1.0", "lodash-es": "^4.17.21", "lodash.get": "^4.4.2", diff --git a/src/views/dry/video/index.vue b/src/views/dry/video/index.vue new file mode 100644 index 0000000..efeb39e --- /dev/null +++ b/src/views/dry/video/index.vue @@ -0,0 +1,271 @@ +<template> + <div> + <div class="app"> + <div class="video-box"> + <div class="video-item"> + <div class="item-title"> + 鏅鸿兘涓崏鑽� + </div> + <div id="video-container1" class="item-player"> + </div> + + </div> + <div class="video-item"> + <div class="item-title"> + 鏅鸿兘涓崏鑽� + </div> + <div id="video-container2" class="item-player"> + + </div> + + </div> + <div class="video-item"> + <div class="item-title"> + 鏅鸿兘涓崏鑽� + </div> + <div id="video-container3" class="item-player"> + + </div> + + </div> + + <div class="video-item"> + <div class="item-title"> + 鏅鸿兘涓崏鑽� + </div> + <div id="video-container4" class="item-player"> + + </div> + + </div> + <div class="video-item"> + <div class="item-title"> + 鏅鸿兘涓崏鑽� + </div> + <div id="video-container5" class="item-player"> + + </div> + + </div> + <div class="video-item"> + <div class="item-title"> + 鏅鸿兘涓崏鑽� + </div> + <div id="video-container5_2" class="item-player"> + + </div> + + </div> + + </div> + + </div> + </div> + + +</template> + +<script setup lang="ts"> +import { onMounted, ref, onUnmounted } from "vue"; +import EZUIKit from "ezuikit-js/ezuikit"; +import axios from "axios"; + + +const playerWidth = 420; +const playerHeight = 270; +const templateCode = "bef3c43bae064cc78f60bc76709ef2f2"; + +// TODO token鑾峰彇閫昏緫鏀惧埌鏈嶅姟绔� +const accessToken = ref(); +const appKey = "bcd4b89660734f48b595cfcd80ab4ee4"; +const appSecret = "8701a6ce59ddfc0e5335f89832bab23c"; + +//鐩存挱鍦板潃 BB2645510-鎽勫儚鏈哄簭鍒楀彿 hd-楂樻竻锛堝幓鎺夊垯鎾斁鏅�氾級 1-閫氶亾鍙� +const url1 = "ezopen://open.ys7.com/BB2645510/1.hd.live"; +const url2 = "ezopen://open.ys7.com/BB2646044/1.hd.live"; +const url3 = "ezopen://open.ys7.com/BB2646084/1.hd.live"; +const url4 = "ezopen://open.ys7.com/BB2646113/1.hd.live"; +const url5 = "ezopen://open.ys7.com/BB5066611/1.hd.live"; +const url5_2 = "ezopen://open.ys7.com/BB5066611/2.hd.live"; + + +let player1 = ref(); + + +function initPlayer1() { + player1 = new EZUIKit.EZUIKitPlayer({ + id: "video-container1", // 瑙嗛瀹瑰櫒ID + accessToken: accessToken.value, + url: url1, + template: templateCode, + plugin: ["talk"], // 鍔犺浇鎻掍欢锛宼alk-瀵硅 + width: playerWidth, + height: playerHeight, + handleSuccess: (res => { + console.info(res); + console.info("鍒濆鍖栨垚鍔�"); + } + ), + handleError: (res => { + console.info(res); + if (res.retcode == "10002") { + console.info("鍒濆鍖栧け璐ワ紝token杩囨湡"); + } + } + ) + }); + setTimeout(() => { + console.info("寮�濮嬭嚜鍔ㄦ挱鏀�1鍙�") + player1.play(); + }, 1000); +} + +function initPlayer2() { + new EZUIKit.EZUIKitPlayer({ + id: "video-container2", // 瑙嗛瀹瑰櫒ID + accessToken: accessToken.value, + url: url2, + template: templateCode, + plugin: ["talk"], // 鍔犺浇鎻掍欢锛宼alk-瀵硅 + header: ["zoom"], + width: playerWidth, + height: playerHeight + }); +} + +function initPlayer3() { + new EZUIKit.EZUIKitPlayer({ + id: "video-container3", // 瑙嗛瀹瑰櫒ID + accessToken: accessToken.value, + url: url3, + template: templateCode, + plugin: ["talk"], // 鍔犺浇鎻掍欢锛宼alk-瀵硅 + width: playerWidth, + height: playerHeight + }); +} + +function initPlayer4() { + new EZUIKit.EZUIKitPlayer({ + id: "video-container4", // 瑙嗛瀹瑰櫒ID + accessToken: accessToken.value, + url: url4, + template: templateCode, + plugin: ["talk"], // 鍔犺浇鎻掍欢锛宼alk-瀵硅 + width: playerWidth, + height: playerHeight + }); +} + +function initPlayer5() { + new EZUIKit.EZUIKitPlayer({ + id: "video-container5", // 瑙嗛瀹瑰櫒ID + accessToken: accessToken.value, + url: url5, + template: templateCode, + plugin: ["talk"], // 鍔犺浇鎻掍欢锛宼alk-瀵硅 + width: playerWidth, + height: playerHeight + }); +} + +function initPlayer5_2() { + new EZUIKit.EZUIKitPlayer({ + id: "video-container5_2", // 瑙嗛瀹瑰櫒ID + accessToken: accessToken.value, + url: url5_2, + template: templateCode, + plugin: ["talk"], // 鍔犺浇鎻掍欢锛宼alk-瀵硅 + width: playerWidth, + height: playerHeight + }); +} + +function initPlayer() { + initPlayer1(); + initPlayer2(); + initPlayer3(); + initPlayer4(); + initPlayer5(); + initPlayer5_2(); +} + +function checkAccessToken() { + const ez_expireTime = localStorage.getItem("ez_expireTime"); + const ez_accessToken = localStorage.getItem("ez_accessToken"); + const now = new Date().getTime(); + const time = ez_expireTime - now; //鍒ゆ柇token鏄惁杩囨湡 + + accessToken.value = ez_accessToken; + if (ez_accessToken && (time > 1000 * 60)) { + initPlayer(); + } else { + getAccessToken(); + } + + +} + +async function getAccessToken() { + const api = axios.create({ + baseURL: "https://open.ys7.com" // 璁剧疆涓虹┖瀛楃涓诧紝鎴栬�呰缃负绗笁鏂规帴鍙g殑鍩烘湰URL + }); + try { + const response = await api.post("/api/lapp/token/get?appKey=" + appKey + "&appSecret=" + appSecret); // 杩欓噷鐨勮矾寰勪负鐩稿璺緞锛屼笉鍖呭惈鍓嶇紑 + if (response && response.data && response.data.code == 200) { + localStorage.setItem("ez_accessToken", response.data.data.accessToken); + localStorage.setItem("ez_expireTime", response.data.data.expireTime); + initPlayer(); + } + console.log(response); + // 澶勭悊鎴愬姛鍝嶅簲鏁版嵁 + } catch (error) { + console.error(error); + // 澶勭悊閿欒 + } +} + + +// DOM鎸傝浇瀹屾垚鍚庢覆鏌撳浘琛� +onMounted(() => { + checkAccessToken(); + +}); + +onUnmounted(() => { + +}); +</script> + +<style lang="less" scoped> +.app { + width: 100%; + display: flex; +} + +.video-box { + width: 100%; + margin: 10px; + display: flex; + justify-content: flex-start; + flex-wrap: wrap; + background-color: white; +} + +.video-item { + height: 300px; + margin: 10px; + width: 420px; + display: flex; + flex-direction: column; + + .item-title { + width: 100%; + height: 30px; + font-weight: bold; + } + +} + + +</style> -- Gitblit v1.9.3