海康威视WEB无插件开发包 V3.2,需要监控设备支持Websocket,截止2021年12绝大部分海康不支持

本文记录了一个webVideoCtrl.js中的HTTP请求错误,具体表现为GET请求返回403 Forbidden状态码。该问题涉及的URL为'http://127.0.0.1:80/ISAPI/ContentMgmt/InputProxy/channels'。

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

报错
webVideoCtrl.js:2 GET http://127.0.0.1:80/ISAPI/ContentMgmt/InputProxy/channels 403 (Forbidden)
官方说明
官方说明链接

在这里插入图片描述

<think>嗯,用户想在Vue2项目里集成海康威视WEB插件开发包V3.2,实现视频显示功能。首先,我需要回忆一下海康的这个开发包的要求。根据引用[3],这个开发包需要设备支持WebSocket,而很多海康设备202112月前可能不支持,所以用户得先确认设备是否兼容,这点很重要,否则后续步骤都白搭。 然后,用户用的是Vue2,所以得考虑如何在Vue2项目中正确引入开发包的JS文件。引用[2]提到在Vue3中是把开发包放在public文件夹下并在index.html引入。Vue2的话,应该也是类似的,静态资源放在static或public目录,然后在index.html里用script标签引入。不过要注意Vue2和Vue3的目录结构可能不同,Vue2通常有static文件夹,而Vue3是public,可能需要调整路径。 接下来是初始化的问题。开发包需要调用初始化方法,比如WebVideoCtrl.I_CheckPluginInstall(),这应该在组件挂载后执行,比如在mounted生命周期钩子里。但要注意跨域问题,引用[3]提到可能会遇到403 Forbidden错误,可能需要配置代理或者后端处理接口权限。 然后登录和预览功能,用户需要输入设备的IP、端口、用户名和密码,然后调用login方法。成功登录后,调用startPreview来显示视频。这里要注意,视频容器的ID需要正确绑定,并且确保DOM已经渲染完成。 另外,引用[1]提到无插件版可能出现连接失败的问题,可能是WebSocket的问题,或者设备不支持。需要提示用户检查设备支持和网络配置,比如端口是否开放,是否启用HTTPS等。 最后,测试和调试阶段,建议用户先简化代码,逐步验证每个步骤,比如先初始化,再登录,再预览。如果有问题,查看浏览器控制台报错,根据引用[3]中的403错误,可能需要后端配合处理接口权限或者跨域设置。 总结一下,步骤应该是:检查设备兼容性→引入JS文件→初始化→登录→预览,同时处理可能出现的跨域和设备配置问题。需要确保用户按照正确的顺序操作,并处理常见的错误情况。</think>### 分步解答:在Vue2中集成海康威视WEB插件开发包V3.2 #### 一、环境准备 1. **设备兼容性验证** 确认监控设备支持WebSocket协议(2021后新设备普遍支持)[^3]。可通过设备管理界面查看协议配置或联系设备供应商确认。 2. **开发包获取** 从海康开发者平台下载[WEB插件开发包V3.2](https://www.hikvision.com/cn/support_documents),确保包含以下核心文件: ```bash webVideoCtrl.js # 核心控制库 jquery-1.12.4.min.js # 依赖库 ``` #### 二、项目集成 1. **文件放置** - 将开发包文件放入`public/js`目录(Vue2推荐静态资源路径) - 在`public/index.html`中添加引用: ```html <script src="/js/jquery-1.12.4.min.js"></script> <script src="/js/webVideoCtrl.js"></script> ``` 2. **全局配置** 在`main.js`中添加环境变量(可选): ```javascript Vue.prototype.$HIK_CONFIG = { ip: &#39;192.168.1.64&#39;, port: 80, username: &#39;admin&#39;, password: &#39;hik12345&#39; } ``` #### 三、核心功能实现 1. **初始化SDK** 在组件`mounted`生命周期初始化: ```javascript mounted() { this.$nextTick(() => { WebVideoCtrl.I_CheckPluginInstall(); // 检测环境 WebVideoCtrl.I_InitPlugin(1000, 600, { bAudit: true, szLoadPath: &#39;/js/&#39; // 重要!指定库文件加载路径 }); }); } ``` 2. **设备登录模块** ```javascript methods: { handleLogin() { WebVideoCtrl.I_Login(this.$HIK_CONFIG.ip, this.$HIK_CONFIG.port, this.$HIK_CONFIG.username, this.$HIK_CONFIG.password, { success: () => { this.startPreview(); }, error: (err) => { console.error(&#39;登录失败:&#39;, err); } }); } } ``` 3. **视频预览组件** 在模板中添加视频容器: ```html <template> <div> <div id="video-container" style="width:800px;height:600px"></div> <button @click="handleLogin">启动预览</button> </div> </template> ``` #### 四、常见问题处理 1. **403 Forbidden错误** 在`vue.config.js`中配置代理: ```javascript module.exports = { devServer: { proxy: { &#39;/ISAPI&#39;: { target: &#39;http://设备IP:80&#39;, changeOrigin: true } } } } ``` 2. **WebSocket连接失败** 检查设备是否开启以下配置: ```plaintext 网络设置 -> 高级配置 -> 启用WebSocket 安全策略 -> 开启HTTP/HTTPS双协议 ``` #### 五、完整示例代码 ```javascript // VideoComponent.vue export default { data() { return { videoObj: null } }, mounted() { this.initSDK(); }, methods: { initSDK() { WebVideoCtrl.I_InitPlugin(800, 600, { bWndFull: true, iWndowType: 1 }); }, startPreview() { this.videoObj = WebVideoCtrl.I_GetOsd(0); WebVideoCtrl.I_StartPreview({ iProtocol: 2, // 1:RTSP 2:WS szIP: this.$HIK_CONFIG.ip, szStreamType: &#39;main&#39;, iWndIndex: 0 }); } } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值