⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hikvisionsdk.~pas

📁 海康威视DVR基于Delphi下应用的例子,实现对Dvr的登陆,视频流的播放等.
💻 ~PAS
字号:
unit HikVisionSDK;


interface

uses
  Windows;
const

  SERIALNO_LEN 	                = 48;

  SET_PRESET		        =       8    ;	// 设置预置点
  CLE_PRESET		        =       9    ;	// 清除预置点
  GOTO_PRESET		        =       39   ;	// 转到预置点

  LIGHT_PWRON		        =        2   ;	// 接通灯光电源 */
  WIPER_PWRON		        =        3   ;	// 接通雨刷开关 */
  FAN_PWRON		        =        4   ;	// 接通风扇开关 */
  HEATER_PWRON	                =        5   ;	// 接通加热器开关 */
  AUX_PWRON		        =        6   ;	// 接通辅助设备开关 */

  ZOOM_IN			=        11  ;	// 焦距以速度SS变大(倍率变大) */
  ZOOM_OUT		        =        12  ;	// 焦距以速度SS变小(倍率变小) */
  FOCUS_NEAR		        =        13  ;	// 焦点以速度SS前调 */
  FOCUS_FAR		        =        14  ;	// 焦点以速度SS后调 */
  IRIS_OPEN		        =        15  ;	// 光圈以速度SS扩大 */
  IRIS_CLOSE		        =        16  ;	// 光圈以速度SS缩小 */
  TILT_UP			=        21  ;	// 云台以SS的速度上仰 */
  TILT_DOWN		        =        22  ;	// 云台以SS的速度下俯 */
  PAN_LEFT		        =        23  ;	// 云台以SS的速度左转 */
  PAN_RIGHT		        =        24  ;	// 云台以SS的速度右转 */
  PAN_AUTO		        =        29  ;	// 云台以SS的速度左右自动扫描 */

//查找文件和日志函数返回值
  NET_DVR_FILE_SUCCESS		=      	1000;	 //获得文件信息
  NET_DVR_FILE_NOFIND		=      	1001;	 //没有文件
  NET_DVR_ISFINDING		=      	1002;	 //正在查找文件
  NET_DVR_NOMOREFILE		=      	1003;	 //查找文件时没有更多的文件
  NET_DVR_FILE_EXCEPTION	=      	1004;	 //查找文件时异常

  NET_DVR_PLAYSTART		=1;//开始播放
  NET_DVR_PLAYSTOP		=2;//停止播放
  NET_DVR_PLAYPAUSE		=3;//暂停播放
  NET_DVR_PLAYRESTART		=4;//恢复播放
  NET_DVR_PLAYFAST		=5;//快放
  NET_DVR_PLAYSLOW		=6;//慢放
  NET_DVR_PLAYNORMAL		=7;//正常速度
  NET_DVR_PLAYFRAME		=8;//单帧放
  NET_DVR_PLAYSTARTAUDIO	=9;//打开声音
  NET_DVR_PLAYSTOPAUDIO		=10;//关闭声音
  NET_DVR_PLAYAUDIOVOLUME	=11;//调节音量
  NET_DVR_PLAYSETPOS		=12;//改变文件回放的进度
  NET_DVR_PLAYGETPOS		=13;//获取文件回放的进度
  NET_DVR_PLAYGETTIME		=14;//获取当前已经播放的时间
  NET_DVR_PLAYGETFRAME		=15;//获取当前已经播放的帧数
  NET_DVR_GETTOTALFRAMES  	=16;//获取当前播放文件总的帧数
  NET_DVR_GETTOTALTIME    	=17;//获取当前播放文件总的时间
  NET_DVR_THROWBFRAME		=20;//丢B帧

  
type

  LPNET_DVR_DEVICEINFO = ^NET_DVR_DEVICEINFO;
  NET_DVR_DEVICEINFO = packed  record
    sSerialNumber: array [0..SERIALNO_LEN] of BYTE;  //序列号
    byAlarmInPortNum :BYTE;		//DVR报警输入个数
    byAlarmOutPortNum:BYTE;		//DVR报警输出个数
    byDiskNum        :BYTE;  		//DVR 硬盘个数
    byDVRType        :BYTE;    		//DVR类型,
    byChanNum        :BYTE;    		//DVR 通道个数
    byStartChan      :BYTE;		//起始通道号,例如DVS-1,DVR - 1
  end;

  LPNET_DVR_CLIENTINFO = ^NET_DVR_CLIENTINFO;
  NET_DVR_CLIENTINFO =  packed  record
    lChannel :Longint;//通道号
    lLinkMode:Longint;//连接方式: 0:TCP方式,1:UDP方式,2:多播方式,3 - RTP方式,4-音视频分开(TCP)
    hPlayWnd :HWND;//播放窗口的句柄,为NULL表示不播放图象
    sMultiCastIP:PChar;//多播组地址
  end;

  LPNET_DVR_TIME = ^NET_DVR_TIME;
  NET_DVR_TIME   =  packed  record
    dwYear  :DWORD;		//年
    dwMonth :DWORD;		//月
    dwDay   :DWORD;		//日
    dwHour  :DWORD;		//时
    dwMinute:DWORD;		//分
    dwSecond:DWORD;		//秒
  end;

  LPNET_DVR_FIND_DATA =^NET_DVR_FIND_DATA;
  NET_DVR_FIND_DATA  =  packed  record
    sFileName: array [0..99] of char;//文件名
    struStartTime : NET_DVR_TIME;//文件的开始时间
    struStopTime  : NET_DVR_TIME;//文件的结束时间
    dwFileSize    : DWORD;//文件的大小
  end;
    
    
   function  NET_DVR_Init:Boolean;stdcall;       external 'HCNetSDK.dll' name 'NET_DVR_Init';
   function  NET_DVR_Cleanup:Boolean;stdcall;       external 'HCNetSDK.dll' name 'NET_DVR_Cleanup';
   function  NET_DVR_Login(sDVRIP :pchar;wDVRPort :WORD;sUserName :pchar;sPassword :pchar;lpDeviceInfo :LPNET_DVR_DEVICEINFO):longint;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_Login';
   function  NET_DVR_Logout(lUserID :longint):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_Logout';
   function  NET_DVR_RealPlay(lUserID :longint;lpClientInfo :LPNET_DVR_CLIENTINFO):longint;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_RealPlay';
   function  NET_DVR_StopRealPlay(lRealHandle :longint):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_StopRealPlay';

//云台控制
   function   NET_DVR_PTZControl(lRealHandle: Longint; dwPTZCommand: LongWord; dwStop: LongWord):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_PTZControl';
   function   NET_DVR_PTZControl_Other(lUserID: LongInt; lChannel: LongInt; dwPTZCommand: LongWord; dwStop: LongWord):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_PTZControl_Other';
   function   NET_DVR_TransPTZ(lRealHandle: LongInt; pPTZCodeBuf: PChar; dwBufSize: LongWord):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_TransPTZ';
   function   NET_DVR_TransPTZ_Other(lUserID: LongInt; lChannel: LongInt; pPTZCodeBuf: PChar; dwBufSize: LongWord):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_TransPTZ_Other';
   function   NET_DVR_PTZPreset(lRealHandle: LongInt; dwPTZPresetCmd: LongWord; dwPresetIndex: LongWord): boolean;stdcall; external 'HCNetSDK.dll' name 'NET_DVR_PTZPreset';
   function   NET_DVR_PTZPreset_Other(lUserID: LongInt; lChannel: LongInt; dwPTZPresetCmd: LongWord; dwPresetIndex: LongWord):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_PTZPreset_Other';

   function   NET_DVR_FindFile(lUserID:LongInt;lChannel:LongInt;dwFileType:DWORD;lpStartTime:LPNET_DVR_TIME;lpStopTime:LPNET_DVR_TIME ):longint;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_FindFile';
   function   NET_DVR_FindNextFile(lFindHandle:LongInt ;lpFindData:LPNET_DVR_FIND_DATA ):longint;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_FindNextFile';
   function   NET_DVR_FindClose(lFindHandle:LongInt ):Boolean ;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_FindClose';

   function   NET_DVR_PlayBackByName(lUserID :longint;sPlayBackFileName :pchar;hWnd :HWND):longint;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_PlayBackByName';
   function   NET_DVR_PlayBackByTime(lUserID :longint;lChannel :longint;lpStartTime :LPNET_DVR_TIME;lpStopTime :LPNET_DVR_TIME;hWnd :HWND):longint;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_PlayBackByTime';
   function   NET_DVR_StopPlayBack(lPlayHandle :longint):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_StopPlayBack';
   function   NET_DVR_PlayBackControl(lPlayHandle :longint;dwControlCode :DWORD;dwInValue :DWORD;lpOutValue :PDWORD):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_PlayBackControl';
   function   NET_DVR_PlayBackSaveData(lPlayHandle :longint;sFileName :pchar):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_PlayBackSaveData';
   function   NET_DVR_StopPlayBackSave(lPlayHandle :longint):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_StopPlayBackSave';

   function   NET_DVR_PlayBackCaptureFile(lPlayHandle :longint;sFileName :pchar):boolean;stdcall; external 'HCNetSDK.dll' name 'NET_DVR_StopPlayBackSave';
   function   NET_DVR_GetFileByName(lUserID :longint ;sDVRFileName : pchar;sSavedFileName : pchar):longint;stdcall; external 'HCNetSDK.dll' name 'NET_DVR_StopPlayBackSave';
   function   NET_DVR_GetFileByTime(lUserID :longint ;lChannel :longint; lpStartTime :LPNET_DVR_TIME;lpStopTime : LPNET_DVR_TIME ; sSavedFileName :pchar):longint;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_StopPlayBackSave';
   function   NET_DVR_StopGetFile(lFileHandle :longint):boolean;stdcall;external 'HCNetSDK.dll' name 'NET_DVR_StopGetFile';
   function   NET_DVR_GetDownloadPos(lFileHandle :longint):integer;stdcall; external 'HCNetSDK.dll' name 'NET_DVR_GetDownloadPos';
   
 var
  m_port:Integer;
 implementation
  
end.




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -