delphi二次开发海康威视流媒体
haj77 2010-11-16 02:55:03 现在二次开发流媒体,使用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';
implementation
end.
//代码
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函数,使用后直接报错,但是在流媒体服务端可以看到客户端已经登录了,不知错在那里??