计算机学习笔记3.docx

上传人:b****3 文档编号:10523071 上传时间:2023-05-26 格式:DOCX 页数:10 大小:804.66KB
下载 相关 举报
计算机学习笔记3.docx_第1页
第1页 / 共10页
计算机学习笔记3.docx_第2页
第2页 / 共10页
计算机学习笔记3.docx_第3页
第3页 / 共10页
计算机学习笔记3.docx_第4页
第4页 / 共10页
计算机学习笔记3.docx_第5页
第5页 / 共10页
计算机学习笔记3.docx_第6页
第6页 / 共10页
计算机学习笔记3.docx_第7页
第7页 / 共10页
计算机学习笔记3.docx_第8页
第8页 / 共10页
计算机学习笔记3.docx_第9页
第9页 / 共10页
计算机学习笔记3.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

计算机学习笔记3.docx

《计算机学习笔记3.docx》由会员分享,可在线阅读,更多相关《计算机学习笔记3.docx(10页珍藏版)》请在冰点文库上搜索。

计算机学习笔记3.docx

计算机学习笔记3

内部文件

 

海康网络摄像头视频预览测试程序(2015.7.27——2015.7.31)

<智慧云联信息技术(北京)有限公司>

版本

 

编制者

王琳珂

编制日期

2015-07-31

审核者

审核日期

批准者

批准日期

签字日期

2015年07月31日

目录

1.准备工作3

2.实现视频预览功能的详细步骤4

2.1创建工程并添加所需库目录4

2.2添加头文件及创建菜单6

2.3启动预览和结束预览函数的功能实现7

3.测试程序运行结果9

1.准备工作

本次工作需要用到的Windows下设备网络SDK:

说明:

HCNetSDK.dll、HCCore.dll必须加载,其他组件,用户可以根据需要选择其中的一部分或者全部。

更新SDK时,HCNetSDK.dll、HCCore.dll以及HCNetSDKCom文件夹下的功能组件库文件都需要更新加载,且HCNetSDKCom文件夹名不能修改。

 

预览和与预览相关的模块流程图:

图中虚线框部分的模块是与预览模块相关,必须在启动预览后才能调用,这些模块之间是并列的关系,各自完成相应的功能。

2.实现视频预览功能的详细步骤

2.1创建工程并添加所需库目录

新建win32项目,工程名为“Haikang”,路径设置为:

D:

\ProgramFiles(x86)\MicrosoftVisualStudio11.0\Projects\。

新建工程完成之后首先运行一下,这样可以产生一个含有exe文件的Debug目录。

拷贝头文件和库文件:

将目录\海康摄像头光盘\ROOT\DevelopmentTools\ClientSDK\HCNetSDKV5.0.3.20_build20150318_win32_CN\incCn中的头文件HCNetSDK.h加到工程目录下面,即D:

\ProgramFiles(x86)\MicrosoftVisualStudio11.0\Projects\Haikang.

将目录\海康摄像头光盘\ROOT\DevelopmentTools\ClientSDK\HCNetSDKV5.0.3.20_build20150318_win32_CN\lib中的库文件(.lib,.dll)添加到工程目录下。

添加之后如下图:

总结:

lib文件夹下的头文件(.h)和静态链接库(.lib)放在工程目录下面,动态链接库(.dll)放在exe文件所在的Debug目录下面,此外,lib文件夹下的HCNetSDKCom直接copy到exe文件所在的Debug目录中。

工程Haikang右击属性——配置属性——C/C++——常规——附加目录包含,添加目录D:

\ProgramFiles(x86)\MicrosoftVisualStudio11.0\Projects\Haikang,即HCNetSDK.h所在的目录。

工程Haikang右击属性——配置属性——链接器——常规——附加库目录,添加目录D:

\ProgramFiles(x86)\MicrosoftVisualStudio11.0\Projects\Haikang,D:

\ProgramFiles(x86)\MicrosoftVisualStudio11.0\Projects\Haikang\Debug即.lib和.dll文件所在的目录。

注意以下所有程序均写在源文件Haikang.cpp中。

2.2添加头文件及创建菜单

添加外部接口头文件

#include"HCNetSDK.h"

引入静态链接库HCNetSDK.lib:

#pragmacomment(lib,"HCNetSDK.lib")

在资源视图中添加菜单“启动预览(&P)”“停止预览(&S)”

声明上述两个菜单所对应的函数:

voidRealPlay();

voidEndPlay();

在主窗口消息处理函数LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam){}分析菜单中加入

caseID_32771:

RealPlay();

break;

caseID_32772:

EndPlay();

break;

其中ID_32771和ID_32772分别是启动预览和停止预览的ID号。

2.3启动预览和结束预览函数的功能实现

将初始化函数BOOLInitInstance(HINSTANCEhInstance,intnCmdShow){}中的HWNDhWnd设置为全局变量,即写到函数外面,并定义全局变量HDChDC=0;然后在函数InitInstance中对hDC赋值:

hDC=GetWindowDC(hWnd);

启动预览函数RealPlay()的功能实现:

voidRealPlay()

{

//初始化

NET_DVR_Init();

//设置连接时间与重连时间

NET_DVR_SetConnectTime(2000,1);

NET_DVR_SetReconnect(10000,true);

//注册设备

//LONGlUserID;(全局变量)

NET_DVR_DEVICEINFO_V30struDeviceInfo;

lUserID=NET_DVR_Login_V30("192.168.1.64",8000,"admin","zhylxxjs201412",&struDeviceInfo);

if(lUserID<0)

{

//在窗口上输出错误提示

TextOut(hDC,200,200,_T("Loginerror"),11);

//通过变量error查看错误信息

interror=NET_DVR_GetLastError();

NET_DVR_Cleanup();

return;

}

/*NET_DVR_Login_V30

用户注册设备。

LONGNET_DVR_Login_V30(

char*sDVRIP,

WORDwDVRPort,

char*sUserName,

char*sPassword,

LPNET_DVR_DEVICEINFO_V30lpDeviceInfo

);

Parameters

sDVRIP[in]设备IP地址或是静态域名,字符数不大于128个

wServerPort[in]设备端口号

sUserName[in]登录的用户名

sPassword[in]用户密码

lpDeviceInfo[out]设备信息

ReturnValues

-1表示失败,其他值表示返回的用户ID值。

该用户ID具有唯一性,后续对设备的操作都需要通过此ID实现。

获取错误码调用NET_DVR_GetLastError*/

//启动预览并设置回调数据流

//LONGlRealPlayHandle;(全局变量)

NET_DVR_PREVIEWINFOstruPlayInfo={0};

//需要SDK解码时句柄设为有效值,仅取流不解码时可设为空

struPlayInfo.hPlayWnd=hWnd;

struPlayInfo.lChannel=1;//预览通道号

//0-主码流,1-子码流,2-码流3,3-码流4,以此类推

struPlayInfo.dwStreamType=0;

//0-TCP方式,1-UDP方式,2-多播方式,3-RTP方式,4-RTP/RTSP,5-RSTP/HTTP

struPlayInfo.dwLinkMode=0;

lRealPlayHandle=NET_DVR_RealPlay_V40(lUserID,&struPlayInfo,NULL,NULL);

if(lRealPlayHandle<0)

{

TextOut(hDC,200,200,_T("NET_DVR_RealPlay_V40error"),26);

interror=NET_DVR_GetLastError();

NET_DVR_Logout(lUserID);

NET_DVR_Cleanup();

return;

}

/*NET_DVR_RealPlay_V40

实时预览(支持多码流)。

LONGNET_DVR_RealPlay_V40(

LONGlUserID,

LPNET_DVR_PREVIEWINFOlpPreviewInfo,

REALDATACALLBACKfRealDataCallBack_V30,

void*pUser

);

Parameters

lUserID[in]NET_DVR_Login或NET_DVR_Login_V30的返回值

lpPreviewInfo[in]预览参数

fRealDataCallBack_V30[in]码流数据回调函数

pUser[in]用户数据

ReturnValues

-1表示失败,其他值作为NET_DVR_StopRealPlay等函数的句柄参数。

获取错误码调用NET_DVR_GetLastError*/

}

结束预览函数EndPlay()的功能实现:

voidEndPlay()

{

//关闭预览

NET_DVR_StopRealPlay(lRealPlayHandle);

//注销用户

NET_DVR_Logout(lUserID);

//释放SDK资源

NET_DVR_Cleanup();

return;

}

3.测试程序运行结果

运行程序,文件——启动预览

点击结束预览时,视频会停在预览的最后一帧图片上。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2