有人用DELPHI做过海康威视流媒体SDK二次开发吗?
现在二次开发流媒体,使用delphi语言//定义dll函数 unit HikStreamSDK;interface
uses
Windows;type pDataRec = function (sID, iUsrdata, iDataType: Longint; pData: PByte; iLen: Longint): Longint; cdecl;
pMsgBack = function (sID, opt, param1, param2: Longint): Longint; cdecl;
//作用:初始化ACE。该函数需要在窗口程序初始化时调用
Function InitStreamClientLib():LongInt;stdcall;external 'client.dll' name 'InitStreamClientLib';
//作用:关闭ACE。该函数需要在窗口程序关闭时时调用
Function FiniStreamClientLib():LongInt;stdcall;external 'client.dll' name 'FiniStreamClientLib';
//作用:创建Player
function HIKS_CreatePlayer(pSink: Pointer; pWndSiteHandle: HWND; pRecFunc: pDataRec;
pMsgFunc: pMsgBack = nil; TransMethod: Longint = 0): Longint; stdcall; external 'client.dll' name 'HIKS_CreatePlayer';
//作用:根据URL,连接服务器。
function HIKS_OpenURL(hSession: Longint; pszURL: PChar; iusrdata: Longint): Longint; stdcall; external 'client.dll' name 'HIKS_OpenURL';
//作用:播放。hSession 是Player 的标示。
function HIKS_Play(hSession:Integer) : Longint; stdcall; external 'client.dll' name 'HIKS_Play'; implementationend.
//代码 function MypDataRec(sID, iUsrdata, iDataType: Longint; pData: PByte; iLen: Longint): Longint; cdecl;
begin
end;function MypMsgBack (sID, opt, param1, param2: Longint): Longint; cdecl;
begin
end;procedure TMain_Frm.Button1Click(Sender: TObject);
var
m_hSession,nRet:Integer;
begin
nRet:=InitStreamClientLib();
Memo1.Lines.Add(IntToStr(nRet));
m_hSession:=HIKS_CreatePlayer(nil,Panel1.Handle,nil,MypMsgBack,1);
Memo1.Lines.Add(IntToStr(m_hSession));
nRet:=HIKS_OpenURL(m_hSession,Pchar('rtsp://192.168.1.155/192.168.1.207:8000:HIK-DS8000HC:0:0:admin:12345/av_stream'),0); Memo1.Lines.Add(IntToStr(nRet));
end; end. 问题出在HIKS_OpenURL函数,使用后直接报错,但是在流媒体服务端可以看到客户端已经登录了,不知错在那里??
现在二次开发流媒体,使用delphi语言//定义dll函数 unit HikStreamSDK;interface
uses
Windows;type pDataRec = function (sID, iUsrdata, iDataType: Longint; pData: PByte; iLen: Longint): Longint; cdecl;
pMsgBack = function (sID, opt, param1, param2: Longint): Longint; cdecl;
//作用:初始化ACE。该函数需要在窗口程序初始化时调用
Function InitStreamClientLib():LongInt;stdcall;external 'client.dll' name 'InitStreamClientLib';
//作用:关闭ACE。该函数需要在窗口程序关闭时时调用
Function FiniStreamClientLib():LongInt;stdcall;external 'client.dll' name 'FiniStreamClientLib';
//作用:创建Player
function HIKS_CreatePlayer(pSink: Pointer; pWndSiteHandle: HWND; pRecFunc: pDataRec;
pMsgFunc: pMsgBack = nil; TransMethod: Longint = 0): Longint; stdcall; external 'client.dll' name 'HIKS_CreatePlayer';
//作用:根据URL,连接服务器。
function HIKS_OpenURL(hSession: Longint; pszURL: PChar; iusrdata: Longint): Longint; stdcall; external 'client.dll' name 'HIKS_OpenURL';
//作用:播放。hSession 是Player 的标示。
function HIKS_Play(hSession:Integer) : Longint; stdcall; external 'client.dll' name 'HIKS_Play'; implementationend.
//代码 function MypDataRec(sID, iUsrdata, iDataType: Longint; pData: PByte; iLen: Longint): Longint; cdecl;
begin
end;function MypMsgBack (sID, opt, param1, param2: Longint): Longint; cdecl;
begin
end;procedure TMain_Frm.Button1Click(Sender: TObject);
var
m_hSession,nRet:Integer;
begin
nRet:=InitStreamClientLib();
Memo1.Lines.Add(IntToStr(nRet));
m_hSession:=HIKS_CreatePlayer(nil,Panel1.Handle,nil,MypMsgBack,1);
Memo1.Lines.Add(IntToStr(m_hSession));
nRet:=HIKS_OpenURL(m_hSession,Pchar('rtsp://192.168.1.155/192.168.1.207:8000:HIK-DS8000HC:0:0:admin:12345/av_stream'),0); Memo1.Lines.Add(IntToStr(nRet));
end; end. 问题出在HIKS_OpenURL函数,使用后直接报错,但是在流媒体服务端可以看到客户端已经登录了,不知错在那里??
解决方案 »
- Listview ViewStyle属性为vsReport怎么显示像DBGrid那样有线条的样子的啊?
- 请问"=B0=A8=A4=C7=B7j=B4M"是什么字符表现格式??
- delphi2006中如何添加VCL控件
- 高手快进来看看-在线等
- QuickReport中制作的报表如何在pagefooter中获取总页数!
- 帮帮忙啊,我dephi7里怎么找不到Qreoport这项啊。。
- 我做了一个第三方控件,注册后如何改变它注册后在面板上显示的默认图标?
- 正如C++可以用BCB,VC,VS.NET,Dev-C++等众多开发工具,Delphi只有这一种开发工具吗???
- 因为本站“搜索”很忙,无法搜索帖子,请各位帮忙。
- 怎样比较函数指针?
- 从外面传回来的经纬度信息,怎么在地图上自动标记啊
- flex中bytearray 有个压缩、解压的函数,delphi如何实现?
nRet:=HIKS_OpenURL(m_hSession,Pchar('rtsp://192.168.1.155/192.168.1.207:8000:HIK-DS8000HC:0:0:admin:12345/av_stream'),0);是用3个参数啊
报读地址错误
typedef int (__stdcall *pDataRec)(int sid, int iusrdata, int idatatype, char* pdata, int ilen);
typedef int (__stdcall *pMsgBack)(int sid, int opt, int param1, int param2);
typedef int HSESSION;CLIENT_API int __stdcall InitStreamClientLib(void);
CLIENT_API int __stdcall FiniStreamClientLib(void);
CLIENT_API HSESSION __stdcall HIKS_CreatePlayer(IHikClientAdviseSink* pSink, void* pWndSiteHandle, pDataRec pRecFunc, pMsgBack pMsgFunc = 0,int TransMethod = 0);
CLIENT_API int __stdcall HIKS_OpenURL(HSESSION hSession,const char* pszURL,int iusrdata);
CLIENT_API int __stdcall HIKS_Play(HSESSION hSession);
CLIENT_API int __stdcall HIKS_RandomPlay(HSESSION hSession,unsigned long timepos);
CLIENT_API int __stdcall HIKS_Pause(HSESSION hSession);
CLIENT_API int __stdcall HIKS_Resume(HSESSION hSession);
CLIENT_API int __stdcall HIKS_Stop(HSESSION hSession);
CLIENT_API int __stdcall HIKS_GetCurTime(HSESSION hSession,unsigned long *utime);
CLIENT_API int __stdcall HIKS_ChangeRate(HSESSION hSession,int scale);
CLIENT_API int __stdcall HIKS_Destroy(HSESSION hSession);
CLIENT_API int __stdcall HIKS_GetVideoParams(HSESSION hSession, int *ibri, int *icon, int *isat, int *ihue);
CLIENT_API int __stdcall HIKS_SetVideoParams(HSESSION hSession, int ibri, int icon, int isat, int ihue);
CLIENT_API int __stdcall HIKS_PTZControl(HSESSION hSession, unsigned int ucommand, int iparam1, int iparam2, int iparam3, int iparam4);
CLIENT_API int __stdcall HIKS_SetVolume(HSESSION hSession,unsigned short volume);
CLIENT_API int __stdcall HIKS_OpenSound(HSESSION hSession,bool bExclusive=false);
CLIENT_API int __stdcall HIKS_CloseSound(HSESSION hSession);
CLIENT_API int __stdcall HIKS_ThrowBFrameNum(HSESSION hSession,unsigned int nNum);
CLIENT_API int __stdcall HIKS_GrabPic(HSESSION hSession,const char* szPicFileName, unsigned short byPicType);