.net web页面嵌入海康视频(winform)

本文记录了在.NET Web项目中尝试集成海康视频接口的尝试,包括遇到的困难,如访问海康摄像头IP的权限问题、SDK引用错误、DLL导入问题等。最终采用了将海康的WinForm demo转换为ActiveX控件并通过网页调用的方法,但遇到了控件显示不稳的难题,导致该方法未成功实施。

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

最后没有通过这个方式实现,只是简单记录一下尝试这个方法遇到的一些问题和大致思路

需求:.net web项目的网页调用海康视频接口进行实行监控

在网上百度了一番之后,尝试使用web插件,发现需要AppKey和AppSecret的值,在哔哩哔哩海康威视OpenAPI对接系列2-postman测试工具使用_哔哩哔哩_bilibili里面搜索海康视频找到这俩值怎么获取到,是需要访问海康摄像头的ip/center地址去访问,我一直都访问不到,后面问咨询了海康的人员,才知道访问这个地址是需要去购买他们的海康软件才可以的,这时候我也才分清,我需要下载的是硬件的SDK

SDK下载地址:海康开放平台

1.下载【设备网络SDK_Win64 V6.1.6.45_build202103】

找到c# demo 【1-实时预览示例代码一】

搜索了一轮网上的资料找到的海康视频的项目大部分都是winform,想使用前端直接接受后端的视频流,但是没有找到相关的例子,所以最后选择了直接把海康视频原来的winform的demo修改成【windows窗体控件库】,通过activex在页面调用打包好的窗体控件库的方法。

这个过程可以参考:使用C#开发ActiveX控件,并打包cab应用于web_yuan_jie-优快云博客

2.在改动过程中可能会遇到的报错:Could not load type 'WIFI_AUTH_PARAM' from assembly 'HikPreview, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' because it contains an object field at offset 0 that is incorrectly aligned or overlapped by a non-object field.    
两种解决办法:①将海康SDK丢到类库里再引用 (一开始的我这样子操作了,但是引用不进去,这里要注意使用跟项目版本一样的类库,我因为项目是.net framework4.7.2,类库创建时引用了默认的.net core3.1,在调用时虽然有显示,但是无法调用,后面想到版本的问题改为一致的就可以调用了 )

②还有一种就是把WIFI_AUTH_PARAM这个变量相关的代码先注释掉,但是不知道什么时候要用到这个变量。

3.运行代码后,发现报错无法访问到CHCNetSDK,因为dllimport引用的路径不对,将原来的窗体类转换为用户控件类后,引用的dll文件跟之前的不一样,我尝试了几次,发现引用这个项目产生的dll路径相同的地方,才可以正常引用到

我的项目要应用到的dll我放在bin/debug下面

 dllimport引用的写法

4.在控件成功运行,摄像头的各项功能都可以正常使用之后,将修改好的这个【用户控件类】的解决方案里,在新增一个setup项目->选择主项目输出->点击setup项目右键[生成],这时候程序集com被注册(这个不确定是不是这一步被注册的,我是多次操作发现经过一步后,可以在引用的Com里面找到这个项目的dll了),

前端引用方式

<object id="VisioDisPlay"
        classid="clsid:7F29ACED-AD84-4EEE-9E1A-58BE255F9EF7"//com
        width="1250"
        height="600"   
>
</object>

第一次操作页面有出来该控件,后面想再次操作的时候,控件一直不显示,所以海康视频最后没有通过这个方式实现,只是简单记录一下尝试这个方法遇到的一些问题和大致思路

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值