vue使用海康控件开发包——浏览器直接查看海康监控画面

news2024/10/7 4:37:08

1、下载控件开发包

在这里插入图片描述

2、安装插件(双击/demo/codebase/HCWebSDKPlugin.exe进行安装)

3、打开/demo/index.html文件

在这里插入图片描述

4、在页面上输入你的海康监控的登录信息进行预览

在这里插入图片描述
如果有监控画面则可以进行下面的操作

注意:以下操作都在Vue项目进行

5、复制开发包中如下三个文件,放到vue项目中的public文件夹下

在这里插入图片描述

6、在vue项目中的public/index.html文件中引用如下两个文件

在这里插入图片描述

7、添加放置监控画面的容器

<template>
  <div>
    <div id="divPlugin" style="width: 900px;height: 500px;"></div>
    <button @click="login">登录</button>
    <button @click="handlePort">获取可用通道</button>
    <button @click="see">预览</button>
  </div>
</template>

8、播放插件初始化

 created() {
    this.init()
  },
  methods: {
    init() {
      WebVideoCtrl.I_InitPlugin({
        iWndowType: 1,
        bWndFull: true,     //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
        cbInitPluginComplete: function () {
          WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin").then(() => {
            // 检查插件是否最新
            WebVideoCtrl.I_CheckPluginVersion().then((bFlag) => {
              if (bFlag) {
                console.log("152检测到新的插件版本,双击开发包目录里的HCWebSDKPlugin.exe升级!");
              }
            });
          }, () => {
            console.log("152插件初始化失败,请确认是否已安装插件;如果未安装,请双击开发包目录里的HCWebSDKPlugin.exe安装!");
          });
        },
      });
    },
}

9、登录

data() {
	return {
		szIP: '192.168.45.55',     //IP地址
      	iPrototocol: 1,
     	iPort: '80',               //端口号
      	szUserName: 'admin',        //用户名
      	szPassword: '123456',   //管理员密码
	}
},
methods: {
	login() {
      WebVideoCtrl.I_Login(this.szIP, this.iPrototocol, this.iPort, this.szUserName, this.szPassword, {
        success: function () {
          console.log("登录成功");
        },
        error: function (err) {
          console.log(err, "登录失败");
        }
      });
    },
}

10、获取可用端口

handlePort() {
      const szDeviceIdentify = this.szIP + '_' + this.iPort;
      WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, {
        success: function (xmlDoc) {
          const oChannels = $(xmlDoc).find("InputProxyChannelStatus");
          $.each(oChannels, function (i) {
            const id = $(this).find("id").eq(0).text()
            const online = $(this).find("online").eq(0).text()
            if ("false" == online) {// 过滤禁用的数字通道
              return true;
            }
            // 如果你的监控不止一个,则可用的端口id不止一个
           that.ids.push(id)
          });
          console.log("获取可用通道");
        },
      });
    },

11、预览画面

 see() {
      WebVideoCtrl.I_StartRealPlay(this.szIP + '_' + this.iPort, {
        // iWndIndex: 1,
        iChannelID: this.ids[0], // 如果播放通道号给错了,浏览器会报代码为1000的错误
        success: () => {
          console.log('预览成功')
        }
      })
    }

到这里浏览器页面就可以预览监控画面了

注意:如果你这时切换了页面,但是监控窗口还是在的,我们在切换回来时,再次点击登录也会报错的,提示我们已经登录过了,所以我们关掉监控窗口时要执行,停止预览–>退出登录–>销毁插件

methods: {
	// 停止预览
stopSee() {
      // 停止单独的窗口
      WebVideoCtrl.I_Stop({
        iWndIndex: 0, // 想要停止的窗口
        success: () => {
          console.log('停止预览')
        }
      })
      // 停止所有窗口
      // WebVideoCtrl.I_StopAllPlay()
    },
    // 退出登录
    logout() {
      WebVideoCtrl.I_Logout(this.szIP + '_' + this.iPort)
    },
    // 销毁插件
    destruction() {
      WebVideoCtrl.I_DestroyPlugin()
    }
},
// 在组件销毁时调用
 beforeDestroy() {
    this.stopSee()
    this.logout()
  },
  destroyed() {
  	this.destruction()
  }

这里有个bug,关闭页面后再次启动页面进行监控预览时会报错
在这里插入图片描述
原因:关闭页面时“关闭预览”的操作还未完成就把插件销毁了
解决方法:加个延时器

destroyed() {
    setTimeout(() => {
      this.destruction()
    }, 100)
  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1626068.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【笔试强训】除2!

登录—专业IT笔试面试备考平台_牛客网牛客网是互联网求职神器&#xff0c;C、Java、前端、产品、运营技能学习/备考/求职题库&#xff0c;在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://ac.nowcoder.com/acm/…

MySQL面试——聚簇/非聚簇索引

存储引擎是针对表结构&#xff0c;不是数据库 引擎层&#xff1a;对数据层以何种方式进行组织 update&#xff1a;加索引&#xff1a;行级锁&#xff1b;不加索引&#xff1a;表级锁

BGP的基本概念和工作原理

AS的由来 l Autonomous System 自治系统&#xff0c;为了便于管理规模不断扩大的网络&#xff0c;将网络划分为不同的AS l 不同AS通过AS号区分&#xff0c;AS号取值范围1&#xff0d;65535&#xff0c;其中64512&#xff0d;65535是私有AS号 l IANA机构负责AS号的分发 AS之…

计算机体系结构与OS管理

冯诺依曼体系结构 我们只看数字信号&#xff08;红色的线&#xff09;&#xff1a; 计算机数据的流动决定了计算机的效率&#xff0c;数据流动就是数据在不同地方的来回拷贝。 所以我们会采取让硬件设备直接与CPU链接的方式&#xff0c;所以就有了储存器了。储存器大大提升了效…

AppScan 扫描工具及使用

一、简介 原名 watchire Appscan ,2007年被IBM收购&#xff0c;成为IBM Appscan。IBM AppScan是一款非常好用且功能强大的Web 应用安全测试工具 曾以 Watchfire AppScan 的名称享誉业界&#xff0c;Rational AppScan 可自动化 Web 应用的安全漏洞评估工作&#xff0c;能扫描和检…

新手Pytorch入门笔记-transforms.Compose()

我使用的图片是上图&#xff0c;直接下载即可 transforms.Compose 是PyTorch中的一个实用工具&#xff0c;用于创建一个包含多个数据变换操作的变换对象。这些变换操作通常用于数据预处理&#xff0c;例如图像数据的缩放、裁剪、旋转等。使用transforms.Compose 可以将多个数据…

【数据结构(邓俊辉)学习笔记】绪论05——动态规划

文章目录 0.前言1. Fibonacci数应用1.1 fib&#xff08;&#xff09;&#xff1a;递归1.1.1 问题与代码1.1.2 复杂度分析1.1.3 递归分析 1.2 fib&#xff08;&#xff09;&#xff1a;迭代 0.前言 make it work,make it right,make it fast. 让代码能够不仅正确而且足够高效地…

pytorch-激活函数与GPU加速

目录 1. sigmod和tanh2. relu3. Leaky Relu4. selu5. softplus6. GPU加速7. 使用GPU加速手写数据训练 1. sigmod和tanh sigmod梯度区间是0&#xff5e;1&#xff0c;当梯度趋近0或者1时会出现梯度弥散的问题。 tanh区间时-1&#xff5e;1&#xff0c;是sigmod经过平移和缩放而…

Golang | Leetcode Golang题解之第50题Pow(x,n)

题目&#xff1a; 题解&#xff1a; func myPow(x float64, n int) float64 {if n > 0 {return quickMul(x, n)}return 1.0 / quickMul(x, -n) }func quickMul(x float64, n int) float64 {if n 0 {return 1}y : quickMul(x, n/2)if n%2 0 {return y * y}return y * y * …

微服务组件-反向代理(Nginx)

微服务组件-反向代理(Nginx) Nginx 基本概念 1、nginx是什么&#xff1f; ①、Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器同时也提供了IMAP/POP3/SMTP服务。它是一款轻量级的Web服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&a…

Linux--内核移植(一)Kernel编译启动

Linux内核编译 编译内核之前需要先在ubuntu上安装lzop库&#xff0c;另外&#xff0c;图形化配置工具还需要ncurses库支持&#xff0c;安装命令为&#xff1a; sudo apt-get install lzop sudo apt-get install build-essential sudo apt-get install libncurses5-dev 在U…

大数据时代的引擎:大数据架构随记

大数据架构通常可以分为以下几层&#xff1a; 一、数据采集层 负责从各种数据源采集、清洗、转换、丰富以及格式化数据&#xff0c;可能包括结构化、半结构化和非结构化的数据。 1.1、常用的技术 在大数据领域&#xff0c;数据采集是一个关键的环节&#xff0c;常用的数据采集…

如何安装sbt(sbt在ubuntu上的安装与配置)(有详细安装网站和图解)

sbt下载官网 选择对应的版本和安装程序 Download | sbt (scala-sbt.org) 安装 解压 将sbt-1.9.0.tgz上传到xshell&#xff0c;并解压 解压&#xff1a; tar -zxvf sbt-1.9.0.tgz 配置 1、在/home/hadoop/sbt中创建sbt脚本 /home/hadoop/sbt 注意要改成自己的地址 cd …

【Linux】详解信号产生的方式

一、kill命令 在命令行中通过kill -数字 pid指令可以给指定进程发送指定信号。这里说明一下几个常见的信号&#xff1a; SIGINT&#xff08;2号信号&#xff09;&#xff1a;中断信号&#xff0c;通常由用户按下CtrlC产生&#xff0c;用于通知进程终止。SIGQUIT&#xff08;3号…

小型内衣裤洗衣机哪个牌子好?六大选购锦囊私藏分享

内衣洗衣机是现代家庭必不可少的小家电&#xff0c;它不仅方便快捷&#xff0c;还能够保持衣物清洁和卫生。然而&#xff0c;市场上洗衣机品牌众多&#xff0c;质量和性能参差不齐&#xff0c;使得消费者购买时难以做出选择。那么&#xff0c;小型内衣裤洗衣机哪个牌子好&#…

企业OA管理|基于SprinBoot+vue的企业OA管理系统(源码+数据库+文档)

企业OA管理目录 基于SprinBootvue的企业OA管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员模块的实现 1.1 用户信息管理 1.2 公告信息管理 1.3 客户关系管理 1.4 通讯录管理 2 用户模块的实现 2.1 客户关系添加 2.2 通讯录添加 2.3 日程安排添加 四、…

7-32 说反话-加强版

题目链接&#xff1a;7-32 说反话-加强版 一. 题目 1. 题目 2. 输入输出样例 3. 限制 二、代码 1. 代码实现 str1 input().split(\n)[0] // 按行获取输入 list_str str1.split()[::-1] // 按空格分割为字符串组&#xff0c;然后将字符串组逆序 str1 .join(list_str) //…

LCD液晶显示屏强光老化测试设备太阳光模拟器仪器

1. LCD液晶显示屏老化测试的意义 LCD液晶显示屏老化测试是评估显示屏寿命和性能的重要手段。随着科技的发展&#xff0c;LCD液晶显示屏已经成为我们日常生活中不可或缺的一部分。长期使用后&#xff0c;LCD液晶显示屏可能会出现亮度下降、颜色失真、响应速度变慢等问题。通过进…

已解决java.lang.IllegalThreadStateException: 非法线程状态异常的正确解决方法,亲测有效!!!

已解决java.lang.IllegalThreadStateException: 非法线程状态异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 场景描述 报错原因 解决思路 解决方法 检查线程状态 正确管理线程生命周期 异常处理 总结 博主v&#xff1a…

STM32中断实现旋转编码器计数

系列文章目录 STM32单片机系列专栏 C语言理论和实践总结专栏 文章目录 1. 旋转编码器 2. 中断代码编写 2.1 Interrupt.c 2.2 Interrupt.h 2.3 完整工程文件 1. 旋转编码器 旋转编码器主要用于测量轴的旋转位置、速度或者是角度的变化&#xff0c;它能够将转动的角度或者…