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

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.mzph.cn/pingmian/3657.shtml

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

相关文章

静态链接lib库使用

lib库实际上分为两种&#xff0c;一种是静态链接lib库或者叫做静态lib库&#xff0c;另一种叫做动态链接库dll库的lib导入库或称为lib导入库。这两个库是不一样的&#xff0c;很多人都分不清楚&#xff0c;很容易混淆。 第一种是静态lib&#xff0c;包含了所有的代码实现的&am…

android studio集成 百度云推送项目实战 注意事项

onBind errorCode0(成功码) appid8543666(appid后台生成) userId1107752540659249906(用户Id) channelId3723987107990995031 requestId1268411415 1.首先查看应用包名是否一致 2.查看key是否一致 <meta-data android:name“api_key” android:value“KRxGMFpmQkXEgZDGG…

python 自动操作电脑

目录 python 模拟点击,在指定位置输入文字 模拟鼠标右键 一、pyautogui是什么 <

Centos 5 的yum源

背景 有使用较老的Centos 5 系统内部安装软件无法正常报错&#xff0c;是由于系统叫老yum源存在问题 处理方法 更换下述yum源&#xff0c;可以将其他repo源文件备份移动到其他目录&#xff0c;添加下述源后重新测试 [C5.11-base] nameCentOS-5.11 baseurlhttp://vault.c…

Electron vue 进程间消息通行

在 Electron 应用中&#xff0c;IPC&#xff08;Inter-Process Communication&#xff0c;进程间通信&#xff09;是一种允许主进程&#xff08;main process&#xff09;和渲染进程&#xff08;renderer process&#xff09;之间交换数据的方式。 ipcRenderer.send 在渲染进程…

Jackson 2.x 系列【31】Spring Boot 集成之字典回写

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 本系列Spring Boot 版本 3.2.4 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 场景描述2. 案例演示2.1 修改枚举2.2 定义注解…

Gitflow实操以及代码审查Pull Request操作

1.背景 之前一直有用过gitflow&#xff0c;但是一直没有归纳技术&#xff0c;另一方面也是每个团队用到的gitflow都不一致。而最近做项目要用gitflow&#xff0c;趁此机会分享一下gitflow的操作。 2.gitflow介绍 用git一直有一个问题&#xff0c;就是怎么保证代码稳定性&…

服务器如何开启远程连接?

服务器开启远程连接是网络管理中一项重要的功能。通过远程连接&#xff0c;用户可以在任何地方远程访问服务器&#xff0c;从而进行管理、维护和监控等操作。远程连接的开启可以为工作提供便利性和效率&#xff0c;但同时也带来了安全风险。确保远程连接的安全性和可靠性是至关…

RPC的介绍和架构发展

RPC概念&#xff1a; RPC是远程过程调用协议&#xff0c;是一种不需要了解底层网络技术&#xff0c;调用远程计算机服务。 RPC框架的组成&#xff1a; 图1 当总项目的数据量、访问量不断提高&#xff0c;就把他分成多个服务&#xff0c;减轻单体机器的压力。分开的ABC服务之…

python高阶函数:zip()

概述与基本用法 zip() 是 Python 内置函数之一&#xff0c;用于将多个可迭代对象打包成一个元组序列&#xff0c;然后返回一个迭代器。它可以接受任意数量的可迭代对象作为参数&#xff0c;并将它们的元素按顺序一一对应地打包成元组。 以下是 zip() 函数的基本用法&#xff…

【前端】vue3树形组件使用

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、树形组件简介二、树形组件使用三、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人学习使用vue前端工具&#xff0c;本文主要介…

iOS - 多线程-GCD-队列组

文章目录 iOS - 多线程-GCD-队列组1. 队列组1.1 基本使用步骤 iOS - 多线程-GCD-队列组 开发过程中&#xff0c;有时候想实现这样的效果 多个任务并发执行所有任务执行完成后&#xff0c;进行下一步处理&#xff08;比如回到主线程刷新UI&#xff09; 1. 队列组 可以使用GC…

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动

npm安装时一直idealTree:npm: sill idealTree buildDeps卡住不动 解决步骤&#xff1a; 1.去以下的目录中删掉.npmrc文件&#xff08;只在C:\User.npmrc&#xff09; 2.清除缓存&#xff0c;使用npm cache verify 不要用npm cache clean --force&#xff0c;容易出现npm WAR…

tsconfig.json 常用属性配置和注释

下面是一个详细的 tsconfig.json 文件示例&#xff0c;其中包含了许多常用的配置选项。这个配置适用于一个使用 TypeScript 进行前端和后端开发的通用项目。 {"compilerOptions": {"target": "es6", // 指定 ECMAScri…

大文件的分片上传和断点上传

一、大文件的分片上传 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Chunked File Upload</title> </head> <body><input type"file" id"fileInput">…

onlyoffice 插件执行后如何将消息返回给页面进行处理返回消息

使用免费的onlyoffice&#xff0c;前端操作插件是困难的&#xff0c;但是虽然是困难的&#xff0c;也是可以解决的&#xff0c;猜想这块内容是收费部分给封装起来了&#xff0c;既然要用免费的&#xff0c;那就要自己实现。 使用方法docEditor.serviceCommand(cmd,param); 可以…

【C++】:构造函数和析构函数

目录 前言一&#xff0c;构造函数1.1 什么是构造函数1.2 构造函数的特性1.3 总结 二&#xff0c;析构函数2.1 什么是析构函数2.2 析构函数的特性2.3 总结 前言 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何…

机器学习学 - 监督学习 - 多项式回归与决策树回归

机器学习学习笔记 - 监督学习 - 多项式回归与决策树回归 一、多项式回归 多项式回归是线性回归的一种扩展&#xff0c;用于处理样本特征与样本值之间存在非线性关系的情况。当数据之间的关系并非简单的线性关系时&#xff0c;线性回归可能无法得到很好的拟合效果。此时&#…

深度学习中的子空间、线性变换和矩阵概念应用

1.表示子空间 在深度学习中&#xff0c;“不同的表示子空间”通常是指模型通过不同的参数&#xff08;例如权重矩阵&#xff09;将输入数据映射到不同的高维空间&#xff0c;这些空间被称为表示子空间。每个子空间都能够捕获输入数据中不同的特征或模式。以下是一些详细解释&am…

Spring(SSM框架)

目录 一、核心体系 二、IOC和AOP 1.控制反转&#xff08;IoC&#xff09; 2.面向切面编程&#xff08;AOP&#xff09; 三、整合持久层 1. JDBC模板&#xff08;JdbcTemplate&#xff09; 2. JPA与Hibernate 3. MyBatis 4. 事务管理 5. 数据源配置 6. 整合其他ORM框…