例子使用c++写的,想用delphi来开发,怎么做啊
解决方案 »
- delphi关于flash点击有什么好办法~~
- 两个boolean如何进行与运算啊?
- 我在用socket做客户端连服务器时,运行时提示'error loading midas.dll'怎么处理呀?
- 紧急求救!
- 请高手指点!
- 在一个主窗口中有dbgrid1控件和button1控件,点击button1弹出添加窗口frmadd,在frmadd中的代码如何写?在frmadd窗口添加完数据后,添加后
- apro控件发送传真的时候支持内置MODEM嘛?你要多少分都没有问题!
- 问什么我在生成的程序中无法输入数据?
- form间的相互调用!
- 区别:TControlCanvas, TMetafileCanvas, TPrintCanvas?怎样打印?给段代码!谢谢!
- iLividSetupV1
- 64位windows 2008,64位oracle g11及64位客户端 oracleOLEDB报错
NET_DVR_RealPlay_V30 网络设备 实时预览 函数。函数模型
LONG NET_DVR_RealPlay_V30(
LONG lUserID,
LPNET_DVR_CLIENTINFO lpClientInfo,
fRealDataCallBack_V30 cbRealDataCallBack,
void *pUser,
BOOL bBlocked
);
其中lUserID 为NET_DVR_LOGIN的返回句柄,其实就是一个内部结构体指针(其中包括登录信息,设备信息,常规硬件状态)。
lpClientInfo,预览参数结构体,指定预览哪路视频,视频解码方式以及在哪个句柄上显示诸如此类与显示有关参数配置。
cbRealDataCallBack 码流数据回调函数,这块可能是你关心的重点。
fRealDataCallBack_V30类型,在HCNetSDK.h网络库头文件中有定义。
typedef void(CALLBACK *fRealDataCallBack_V30)(
LONG lRealHandle,
DWORD dwDataType,
BYTE *pBuffer,
DWORD dwBufSize,
void *pUser
);
一般这个函数被调用后,基本上我们都是通过判断处理
procedure RealCallBack LONG lRealHandle,
DWORD dwDataType,
BYTE *pBuffer,
DWORD dwBufSize,
void *pUser
)
begin
if lRealHandle > -1 then
case dwDataType of
begin
NET_DVR_SYSHEAD:{系统头数据}
begin
dwBufSize
end;
NET_DVR_STREAMDATA:{数据(包括复合流或音视频分开的视频流数据)}....
begin
if dwBufSize > 0 then{有数据}
begin
//读取pBuffer 缓冲区,如果你读取一直都是很少的字节最好先检查下NET_DVR_RealPlay_V30的返回值,通过NET_DVR_GetLastError获取错误码,错误码同样在HCNetSDK.h定义
end;
end;
NET_DVR_AUDIOSTREAMDATA:{音频数据}....
end;end;
希望以上辛辛苦苦写的对你有所帮助。
type
fMessCallBack=function (lCommand: Longint;sDVRIP: PChar;pBuf: PChar;dwBufLen: DWORD): BOOL; stdcall;
fMSGCallBack=function (lCommand: Longint;pAlarmer: PNET_DVR_ALARMER;pAlarmInfo: PChar;dwBufLen: DWORD; pUser: Pointer): BOOL; stdcall; function NET_DVR_CaptureJPEGPicture(LoginID: longint; lChannel: longint; lpJpegPara: PNET_DVR_JPEGPARA; sPicFileName: PChar):Boolean; stdcall;external 'HCNetSDK.dll';
{功能:JPEG截图}
function NET_DVR_Init: Integer; stdcall; external 'HCNetSDK.dll';
{初始化} procedure NET_DVR_Cleanup; stdcall;external 'HCNetSDK.dll';
{释放DLL} function NET_DVR_Login(IPAddr: PChar;wDVRPort: WORD;UserName: PChar;PassWord: PChar; lpDeviceInfo: PNET_DVR_DEVICEINFO): longint; stdcall;external 'HCNetSDK.dll';
{功能:注册用户到硬盘录像机} function NET_DVR_Logout(LoginID: longint): Integer; stdcall;external 'HCNetSDK.dll';
{功能:注册用户退出硬盘录像机} function NET_DVR_GetDVRConfig(lUserID:LongInt;dwCommand:DWORD;lChannel:LongInt;lpOutBuffer: Pointer;dwOutBufferSize:DWORD;lpBytesReturned: LPDWORD):BOOL; stdcall; external 'HCNetSDK.dll';
{功能:获取硬盘录像机的参数} function NET_DVR_SetDVRConfig(lUserID: LongInt;dwCommand:DWORD;lChannel:LongInt;lpInBuffer: Pointer;dwInBufferSize:DWORD):BOOL; stdcall; external 'HCNetSDK.dll';
{功能:设置硬盘录像机的参数} function NET_DVR_GetLastError: DWORD; stdcall; external 'HCNetSDK.dll';
{功能:获取最后错误} function NET_DVR_RestoreConfig(lUserID: LongInt): BOOL; stdcall; external 'HCNetSDK.dll';
{功能:恢复默认值} function NET_DVR_SaveConfig(lUserID: LongInt): BOOL; stdcall; external 'HCNetSDK.dll';
{功能:保存参数} function NET_DVR_RebootDVR(lUserID: LongInt): BOOL; stdcall; external 'HCNetSDK.dll';
{功能:重启} function NET_DVR_ShutDownDVR(lUserID: LongInt): BOOL; stdcall; external 'HCNetSDK.dll';
{功能:关闭DVR} //远程格式化硬盘
function NET_DVR_FormatDisk(lUserID: LongInt;lDiskNumber:LongInt):LongInt; stdcall; external 'HCNetSDK.dll';
function NET_DVR_GetFormatProgress(lFormatHandle: LongInt;pCurrentFormatDisk: Pointer;pCurrentDiskPos: Pointer;pFormatStatic: Pointer):Boolean; stdcall; external 'HCNetSDK.dll';
function NET_DVR_CloseFormatHandle(lFormatHandle: LongInt):BOOL; stdcall; external 'HCNetSDK.dll'; function HCGetLastString: PChar; //报警
function NET_DVR_SetupAlarmChan(lUserID: Longint): Longint; stdcall; external 'HCNetSDK.dll';
function NET_DVR_CloseAlarmChan(lAlarmHandle: Longint): BOOL; stdcall; external 'HCNetSDK.dll';
function NET_DVR_GetAlarmOut(lUserID: Longint; lpAlarmOutState: LPNET_DVR_ALARMOUTSTATUS): BOOL; stdcall; external 'HCNetSDK.dll';
function NET_DVR_SetAlarmOut(lUserID: Longint; lAlarmOutPort: Longint;lAlarmOutStatic: Longint): BOOL; stdcall; external 'HCNetSDK.dll'; function NET_DVR_SetDVRMessCallBack(MessCallBack: fMessCallBack): BOOL;stdcall; external 'HCNetSDK.dll'; //查找文件
function NET_DVR_FindFile(lUserID: Longint;lChannel: Longint;dwFileType: DWORD; lpStartTime: PNET_DVR_TIME; lpStopTime: PNET_DVR_TIME): Longint; stdcall; external 'HCNetSDK.dll';
function NET_DVR_FindNextFile(lFindHandle: Longint;lpFindData: PNET_DVR_FIND_DATA): Longint; stdcall; external 'HCNetSDK.dll';
function NET_DVR_FindClose(lFindHandle: Longint): BOOL;stdcall; external 'HCNetSDK.dll'; //服务器状态
function NET_DVR_GetDVRWorkState(lUserID: Longint; lpWorkState: PNET_DVR_WORKSTATE): BOOL; stdcall; external 'HCNetSDK.dll';
//报警监听和取消报警监听
function NET_DVR_StartListen_V30(sLocalIP: PChar; wLocalPort: WORD;DataCallback: fMSGCallBack;pUserData: Pointer): Longint; stdcall; external 'HCNetSDK.dll';
//停止监听(支持多线程)。
function NET_DVR_StopListen_V30(lListenHandle: Longint): BOOL; stdcall; external 'HCNetSDK.dll';
implementation