vue-element-admin 集成海康威视监控插件VideoWebPlugin

本文档详细介绍了如何集成和封装海康威视的监控视频WEB插件,包括实时监控、单个监控直播和回放功能。通过创建和初始化插件实例,设置布局和播放模式,实现视频播放窗口的自适应和拖拽时的重新定位。此外,还提供了代码示例和关键接口的调用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

项目为智慧园区后台管理系统
需求 全部摄像头实时监控&&单个监控直播&&单个监控回放
集成 海康威视监控 WEB插件
网上有非常多的资源代码实例 大多数还需要根据自己的需求改进
实测 完美兼容

演示:

页面监控

在这里插入图片描述

弹出层监控

在这里插入图片描述


准备

海康开放平台
注册个账号=>下载 =>iSecureCenter=> 视频WEB插件V1.5.1
下载后在bin文件夹 VideoWebPlugin.exe 双击安装 (仅支持Windows)

里面的几个demo非常有用 挨个测试一下 至少知道怎么一回事
最关键 是这个开发指南 所有你想试下的功能 都在里边了
在这里插入图片描述

或许能用到的几个网址:
直播地址测试
Vue接入监控视频技术整理
基于vue项目 vue-video-player实现rtmp hls视频流播放
vue cli中播放rtmp&flv/m3u8/rtsp ; 在html原生页面中播放m3u8
vue截图,上传,下载,预览
vue实现播放rtmp直播视频流
阿里云Web端播放器

方案

封装一个海康威视的播放器组件

这里从父组件传入了几个参数 以及一些引入的库 实际开发因人而异
*index :当前组件所属页面 因为由多个页面用到
*type : 回放 || 直播
*code : 监控点编号 监控设备页面String || 实时监控 Array
*time 回放时间设定 暂时废弃
几点注意 :
监控组件的 宽高自适应外层父组件 ;
项目中另外一个监控组件是装在vxe-modal弹出层的,这个modal可以拖拽,拖拽时需要对视频组件进行重新定位,会有卡顿感;
监控视频的显示优先级最高,不知道怎么调整,因此需要确保每次只能初始化一个插件实例;
组件视频采用九宫格3x3展示,超出部分分页实现,我也写过根据监控id总量动态布局,后来默认了;
创建插件实例 initPlugin 这个方法 朝父组件发射了个事件 通知父组件 我这边正在初始化,防止重复加载监控实例;

/**
 * @author deep1nBlur
 * @email mailbrcee@gmail.com 
 * @create date 2020-11-05 09:10:05 
 * @modify date 2020-11-05 09:10:05
 * @desc [海康监控视频组件]
 *  */
<template>
  <div
    class="root-haikang-video"
    id="video-frame"
    :style="{
      width: sizes.width,
      height: sizes.height
    }"
  >
    <div
      id="playWnd"
      class="playWnd"
      v-html="playText"
      :style="{ width: swfWidth + 'px', height: swfHeight + 'px' }"
    ></div>

    <el-button-group
      v-if="show"
      style="margin-top: 5px; display: flex; justify-content: center"
    >
      <el-button
        size="mini"
        type="primary"
        icon="el-icon-arrow-left"
        @click="nextPage('left')"
        :disabled="page == 0"
        >上一页</el-button
      >
      <el-button
        size="mini"
        type="primary"
        @click="nextPage('right')"
        :disabled="page + 1 == pageNum"
        >下一页<i class="el-icon-arrow-right el-icon--right"
      /></el-button>
    </el-button-group>
  </div>
</template>

<script>
import request from "@/utils/request";
impor
### 海康监控项目中 `element-ui` 的 `el-dialog` 组件使用方法 在海康威视监控集成项目中,为了实现摄像头的实时监控、单个监控直播以及回放功能,可以借助 VueElement UI 提供的强大组件库来增强用户体验。具体来说,在展示视频流或操作界面时,`el-dialog` 是一个非常实用的选择。 #### 基本结构设置 首先确保已经安装并配置好了 vue-element-admin 框架及其依赖项[^1]。接着引入必要的 CSS 文件和 JavaScript 库: ```html <!-- 引入样式 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> ``` #### 创建对话框模板 定义用于显示摄像机画面或其他交互控件的 HTML 结构如下所示: ```html <template> <div id="app"> <!-- 对话框触发按钮 --> <el-button type="primary" @click="dialogVisible = true">查看监控</el-button> <!-- 监控弹窗 --> <el-dialog :visible.sync="dialogVisible" width="80%" top="5vh"> <span slot="title"><i class="el-icon-video-camera-solid"></i> 实时预览 - {{ selectedCameraName }}</span> <!-- 这里放置具体的播放器容器 或者其他自定义内容 --> <video-player v-if="dialogVisible" ref="player" /> <span slot="footer" class="dialog-footer"> <el-button @click="closeDialog()">取 消</el-button> <el-button type="success" @click="startPlayback()">开始回放</el-button> </span> </el-dialog> </div> </template> ``` 上述代码片段展示了如何创建一个带有标题栏、主体区域(此处预留给了 video player)、底部操作区的基础模态窗口布局。 #### 关联逻辑处理函数 接下来编写相应的脚本来控制该组件的行为,比如打开关闭对话框、加载指定设备的数据等: ```javascript export default { data() { return { dialogVisible: false, // 控制对话框显隐状态 selectedCameraId: '', // 当前选中的相机ID selectedCameraName: '默认名称' // 显示用的名字 }; }, methods: { closeDialog() { this.dialogVisible = false; setTimeout(() => {this.$refs.player.stop()}, 300); // 确保停止任何正在运行的内容 }, startPlayback() { console.log('模拟启动回放'); alert(`即将播放来自 ${this.selectedCameraName} 的录像`); } } }; ``` 这段 JavaScript 负责管理 `el-dialog` 可见性的切换,并提供了简单的回调机制以便于后续扩展更多特性,如实际调用 Web API 获取媒体资源链接等功能。 通过这种方式可以在基于 vue-element-admin 构建的应用程序内轻松嵌入由 Element UI 提供的支持响应式的弹出层解决方案,从而更好地服务于智慧园区后台管理系统对于多路视频管理和便捷访问的需求。
评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值