公司开发需要对接海康摄像头, 在开发中遇到一些坑, 记录下来, 记做经验.
项目使用cmake进行配置
1, 将sdk引入到项目中
因为我们公司使用的是cmake进行项目编译, 在win10环境下.(我的开发环境是win10+qt5.9+vs2015x64), 所以需要先将海康sdk引入到现有项目中.
海康sdk地址: https://www.hikvision.com/cn/download_more_570.html#prettyPhoto
如下:点击下载即可
然后sdk放入项目中sdk的位置, 如下是我的项目我放到了sdk/CH_HCNet_SDK中
2, 在cmake中添加海康sdk
# 引入海康监控sdk
# 设置CH_HCNet_SDK_DIR变量 并给默认值(如果sdk不在项目中,也可以给空, 让开发人员在配置的时候选择sdk位置)
SET(CH_HCNet_SDK_DIR "${PROJECT_SOURCE_DIR}/sdk/CH_HCNet_SDK" CACHE PATH "Set haikang sdk path")
include_directories("${CH_HCNet_SDK_DIR}/include")
link_directories("${CH_HCNet_SDK_DIR}/lib")
3, 将CH_HCNet_SDK/bin加入到系统环境变量path中
4, 调用sdk方法
在海康sdk例子中有最全的用法, 我因为测试只使用了一些基本功能, 具体sdk用法可以在文档和demo中查看使用
CHaiKangMonitorWgt.ui
CHaiKangMonitorWgt.h
#ifndef CHAIKANGMONITORWGT_H
#define CHAIKANGMONITORWGT_H
#include <QWidget>
#include <qlineedit.h>
#include <qslider.h>
namespace Ui {
class CHaiKangMonitorWgt;
}
class CHaiKangMonitorWgt : public QWidget
{
Q_OBJECT
public:
CHaiKangMonitorWgt(QWidget *parent = nullptr);
~CHaiKangMonitorWgt();
/**
* 打开监控
* @param host 主机
* @param port 端口
* @param username 用户名
* @param password 密码
*/
void playMonitor(QString host, int port, QString username, QString password);
private:
Ui::CHaiKangMonitorWgt *ui;
long m_lPlayHandle = 0;//Player Handle
public slots:
void ctlButtonSlot(int command);
};
#endif // CHAIKANGMONITORWGT_H
CHaiKangMonitorWgt.cpp
#include "CHaiKangMonitorWgt.h"
#include "ui_CHaiKangMonitorWgt.h"
#include <qdebug.h>
// 监控相关库
#include <windows.h>
#