需求:通过接入设备后,获取现场实时记录。
实现:通过配置NVR,设置间隔时间定时抓拍摄像头画面,通过SDK定时获取NVR对应通道的设备抓拍图片数据。
离线、上线、下载进度回调。
//初始化SDK接口
m_DisConnectCallBack += new fDisConnectCallBack(DisConnectCallBack);
m_ReConnectCallBack += new fHaveReConnectCallBack(ReConnectCallBack);
m_DownloadPosCallBack += new fTimeDownLoadPosCallBack(DownLoadPosCallBack);
建立NVR通道实体类型
private class nvr_data
{
public int index { get; set; }//数据序列号
public IntPtr m_LoginID { get; set; }//
public IntPtr m_DownloadID { get; set; }
public string filepath { get; set; }//抓拍图片路径
public DateTime catchtime { get; set; }//抓拍时间
public string devicecontent { get; set; }//设备信息
public NET_DEVICEINFO_Ex m_DeviceInfo { get; set; }
public string ip { get; set; }
public string username { get; set; }
public string password { get; set; }
public bool download_flag { get; set; }//检测下载状态
public int time { get; set; }//抓拍时间间隔
public string channelanme { get; set; }//通道名称
}
通过配置XML文件读取通道信息

登录设备开启图片下载线程
//初始化抓拍路径
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
//初始化SDK接口
m_DisConnectCallBack += new fDisConnectCallBack(DisConnectCallBack);
m_ReConnectCallBack += new fHaveReConnectCallBack(ReConnectCallBack);
m_DownloadPosCallBack += new fTimeDownLoadPosCallBack(DownLoadPosCallBack);
try
{
NETClient.Init(m_DisConnectCallBack, IntPtr.Zero, null);
NETClient.SetAutoReconnect(m_ReConnectCallBack, IntPtr.Zero);
}
catch (Exception ex)
{
this.BeginInvoke((Action<string>)setText, ex.Message);
}
this.BeginInvoke((Action<string>)setText, "初始化成功");
//开始初始化接口
UploadFileOss.StartUpload();
//查询NVR配置
XmlDocument NRVconfig = new XmlDocument();
NRVconfig.Load(Applic

本文介绍了一种通过配置NVR并利用SDK定时抓取摄像头图片的方法。通过读取XML配置文件,登录NVR设备,设置抓拍间隔,实现图片的定时下载及异常处理。
最低0.47元/天 解锁文章
3262





