delphi 开启、停止海康录像机录像功能代码
时间: 2023-08-06 19:02:54 浏览: 238
以下是 Delphi 中开启、停止海康录像机录像功能的示例代码:
```delphi
// 开始录像
function StartRecord(const DVRIP, DVRPort, DVRUsername, DVRPassword: string;
const Channel: Integer; const FileName: string): Boolean;
var
DVRHandle: LongInt;
ChannelHandle: LongInt;
begin
Result := False;
// 登录海康录像机
DVRHandle := NET_DVR_Login_V30(PChar(DVRIP), StrToInt(DVRPort),
PChar(DVRUsername), PChar(DVRPassword), @DeviceInfo);
if DVRHandle < 0 then
Exit;
try
// 设置录像文件保存路径
NET_DVR_SetCaptureFileNamingRule(NET_DVR_CAPTURE_FILE_NAME_RULE(1),
PChar(FileName), DVRHandle);
// 开始录像
ChannelHandle := NET_DVR_RealPlay_V30(DVRHandle, NET_DVR_CLIENTINFO(),
nil, nil, 0);
if ChannelHandle < 0 then
Exit;
if not NET_DVR_SaveRealData(ChannelHandle, PChar(FileName)) then
Exit;
Result := True;
finally
// 停止录像并退出登录
NET_DVR_StopSaveRealData(ChannelHandle);
NET_DVR_Logout(DVRHandle);
end;
end;
// 停止录像
function StopRecord(const DVRIP, DVRPort, DVRUsername, DVRPassword: string;
const Channel: Integer): Boolean;
var
DVRHandle: LongInt;
ChannelHandle: LongInt;
begin
Result := False;
// 登录海康录像机
DVRHandle := NET_DVR_Login_V30(PChar(DVRIP), StrToInt(DVRPort),
PChar(DVRUsername), PChar(DVRPassword), @DeviceInfo);
if DVRHandle < 0 then
Exit;
try
// 停止录像
ChannelHandle := NET_DVR_RealPlay_V30(DVRHandle, NET_DVR_CLIENTINFO(),
nil, nil, 0);
if ChannelHandle < 0 then
Exit;
if not NET_DVR_StopSaveRealData(ChannelHandle) then
Exit;
Result := True;
finally
// 退出登录
NET_DVR_Logout(DVRHandle);
end;
end;
```
请注意,以上代码中使用了海康提供的 SDK,需要先下载并安装。此外,代码中的 `DeviceInfo` 变量也需要先进行初始化。
阅读全文