1- Una demo de un software cliente para las cámara y grabadores.
2- Manual del SDK.
3- Librerías a incluir en el proyecto.
4- Ejemplo del software cliente ya compilado.
El caso es que no estoy muy lúcido con Visual C++ (Me manejo en C#) y me preguntaba si alguien puede echarme una manita (NO al cuello) para tener un pequeño ejemplo de un “preview” (Conectar a una cámara). Para que os hagáis una idea, en el manual del SDK aparecen ejemplos de cada funcionalidad (Os dejo el SDK por si queréis echarle un vistazo rápido https://we.tl/xi5gvhkYWZ), me bastaría con ver o saber cómo pasar este código a visual y poder conectar y visualizar una cámara en una ventana.
La funcionalidad de preview en el SDK es la siguiente (Mediante un ejemplo):
Código
[/b]
#include <stdio.h> #include <iostream> #include "Windows.h" #include "HCNetSDK.h" #include <time.h> using namespace std; void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG lUserID, LONG lHandle, void *pUser) { char tempbuf[256] = {0}; switch(dwType) { case EXCEPTION_RECONNECT: //reconnect when preview printf("----------reconnect--------%d\n", time(NULL)); break; default: break; } } void main() { //--------------------------------------- // Get the window handle of the console HMODULE hKernel32 = GetModuleHandle("kernel32"); GetConsoleWindow = (PROCGETCONSOLEWINDOW)GetProcAddress(hKernel32,"GetConsoleWindow"); //--------------------------------------- //Initialize SDK NET_DVR_Init(); //Set connect time and reconnect time NET_DVR_SetConnectTime(2000, 1); NET_DVR_SetReconnect(10000, true); //--------------------------------------- //Login device 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; } //--------------------------------------- //Set exception callback function NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL); //--------------------------------------- //Start preview and set to callback stream data LONG lRealPlayHandle; HWND hWnd = GetConsoleWindow(); //Get window handle NET_DVR_PREVIEWINFO struPlayInfo = {0}; struPlayInfo .hPlayWnd = hWnd; //If need to decode, please set it valid. If want to get stream data only, it can be set to NULL struPlayInfo .lChannel = 1; //Preview channel NO. struPlayInfo .dwStreamType = 0; //0-main stream, 1-sub stream, 2-stream3, 3-stream4. struPlayInfo.dwLinkMode = 0; //0-TCP mode, 1-UDP mode, 2-Multi-play mode, 3-RTP mode, 4-RTP/RTSP, 5-RTSP/HTTP lRealPlayHandle = NET_DVR_RealPlay_V40(lUserID, &struPlayInfo, NULL, NULL); if (lRealPlayHandle < 0) { printf("NET_DVR_RealPlay_V40 error\n"); NET_DVR_Logout(lUserID); NET_DVR_Cleanup(); return; } //--------------------------------------- //Close preview NET_DVR_StopRealPlay(lRealPlayHandle); //Logout NET_DVR_Logout(lUserID); //Release SDK resource NET_DVR_Cleanup(); return; }
[/color]
Para acceder a los equipos es necesario IP, usuario, contraseña y puerto.
lUserID = NET_DVR_Login_V30("192.0.0.64", 8000, "admin", "12345", &struDeviceInfo);
He llegado a probar copiando el código de ejemplo en un nuevo proyecto de C++ en Visual 2015 vacío (.cpp), después agregar las 4 librerías (La interesante para el preview es HCNetSDk.h) pero no salgo de ese punto... al compilar genera errores etc etc.
A ver si podéis echarme una mano chic@s.
Mod: Los códigos deben ir en etiquetas GeSHi