我们在对海康进行二次开发的时候,直接阅读他的使用手册是明智的,但是远远不够,他只是一个对他各个接口名称和属性的规范,就想JDK的手册一样,但是它是没有实际的列子的,要在他文件中的java-Demo中寻找,但是如果你完全想在里面找到手册上给你明确的那些接口和方法是徒劳的。我们公司需要我们拿到海康摄像头进行人脸对比的结果(其中包含用户的ID,时间等信息),我们按照手册—编程引导—人脸人体相关功能模块流程—人脸对比,接下来就看到了这张图

java获取海康nvr通道信息 java 海康sdk_MVC

按照他的指示进行操作,但是在我花了好长时间查找了他SDK文件里面的所有接口时,发现图中的接口在他的SDK中的jar包、java类等等中找不到,所以我们走了一个错误的方向。

我一直以为既然是他手册上写的东西,那么在它的接口和提供的jar包一定能找到对应的类或方法,但是没有!!!你就像是用官方的JDK但是却无法引进String等基本类型的包是一样的感觉。

直到看到了其他的博客(因为之前学grpc让我形成了思维定式,官方文档比博客更靠谱),才知道海康的对于其二次开发的官方文档是多么多么的不靠谱!!!他仅仅是对自己已经向消费值提供服务的接口和方法做了比较完整的说明,但是对于开发者,他是管你看不看得懂。

在海康的SDK中我们需要明确的是,他有些接口在他的HCNetSDK.java中已经定义好的,但是在我们这个开发需求上,他的手册里告诉我们的开发步骤中的接口时你会发现到第二步骤的时候

java获取海康nvr通道信息 java 海康sdk_MVC_02


居然没有V31,只有V30(他不仅仅少了这个,后面很多步骤的接口都少了),当我们敢于在其下面一行直接复制V30改成V31以后,你会发现我们进入了一个死胡同,没错!他就是一个套一个,就像是MVC中control中包含了serviice和实体类,Service里面又包含了DAO…,只要我们创建一个就会不停的报错,不是缺这个就是缺那个。然后我又抱着可能他接口里面已经定义好了我们所需的接口和方法只是我没有找到这种想法,不用怀疑,我又找了一遍又浪费了很多时间,跟老大反应接口在海康提供文件中有很多是没有的,老大还是让我继续研究SDK,我………实在不想再继续进行这个任务了。

终于还是去找博客了,搜索 “海康SDK开发的人脸对比”是不可能找到答案的,因为开发需求千奇百怪。

这个博客让我明白了之前的想法是正确的,海康提供的文件确实有很多接口是没有的!就是要自己创建,但是我像之前一样盲目创建智慧让自己陷于烦恼中!只有搞清楚整个逻辑才能开始去创建。就像搞清楚MVC那么你才能真正的明白那各种各样作用于不同层的开发框架。

上面的那个博客思路不错,但是给出的代码确实不敢恭维,不是少了空格,就是没说清楚在那个类文件中操作!但是却给了我突破口。