19,468
社区成员
发帖
与我相关
我的任务
分享
NET_DVR_Init();
//设置连接时间与重连时间
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
//---------------------------------------// 注册设备
LONG lUserID;
NET_DVR_DEVICEINFO_V30 struDeviceInfo;
lUserID = NET_DVR_Login_V30("192.0.0.64", 8000, "admin", "12345", &struDeviceInfo);
if (lUserID < 0)
{
printf("Login error, %d\n", NET_DVR_GetLastError());
NET_DVR_Cleanup();
//return;
exit(0);
}
//---------------------------------------//设置异常消息回调函数
NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL);
//---------------------------------------//启动预览并设置回调数据流
LONG lRealPlayHandle;
HWND hWnd = GetDlgItem(IDC_STATIC)->m_hWnd;
//HWND hWnd = AfxGetMainWnd()->m_hWnd;
if(IsWindow(hWnd))
MessageBox("有效的句柄");
else
MessageBox("无效的句柄");
NET_DVR_CLIENTINFO ClientInfo = {0};
ClientInfo.hPlayWnd = hWnd; //需要 SDK 解码时句柄设为有效值,仅取流不解码时可设为空
ClientInfo.lChannel = 1; //预览通道号
ClientInfo.lLinkMode = 0; /*最高位(31)为 0 表示主码流,为 1 表示子码流。 0~30 位表示连接方式: 0-TCP 方式;
1-UDP 方式;2-多播方式;3-RTP 方式; 4- RTP over RTSP,5- RTSP over HTTP */
ClientInfo.sMultiCastIP = NULL; //多播地址,需要多播预览时配置
BOOL bPreviewBlock = false; //请求码流过程是否阻塞,0:否,1:是
lRealPlayHandle = NET_DVR_RealPlay_V30(lUserID, &ClientInfo, NULL, NULL, 0);
if (lRealPlayHandle < 0)
{
printf("NET_DVR_RealPlay_V30 error\n");
NET_DVR_Logout(lUserID);
NET_DVR_Cleanup();
}
/*******自己添加部分******用于视频抓图*********************/
GetCurrentDirectory(sizeof(dir), dir);
strcpy(fromFile,dir);
strcat(fromFile, "\\picture\\");
strcat(fromFile, "9019001");
strcat(fromFile, ".jpg");
NET_DVR_SetCapturePictureMode(JPEG_MODE);
if(NET_DVR_CapturePicture(lRealPlayHandle, fromFile) == false)
{
//printf("%s:%s\nerrno:%d","9019001", "抓图失败!", NET_DVR_GetLastError());
char buffer[100];
sprintf(buffer, "%s:%s\nerrno:%d","9019001", "抓图失败!", NET_DVR_GetLastError());
MessageBox(buffer);
NET_DVR_Logout(lUserID);
}
/*******自己添加部分******用于视频抓图*********************/
//---------------------------------------//关闭预览
NET_DVR_StopRealPlay(lRealPlayHandle);
//注销用户
NET_DVR_Logout(lUserID);
//释放 SDK 资源
NET_DVR_Cleanup();