📄 main_unit.pas
字号:
//启动预览(通道号,预览句柄,预览区域,是否设置预览用 Overlay 方式(MD卡兼容))
Start_Video_Preview(CruTD, Panel1.Handle, Panel1.ClientRect);
end;
procedure Tmain.Button3Click(Sender: TObject);
begin
//停止预览(通道号)
Stop_Video_Preview(SpinEdit1.Value);
Panel1.Refresh //刷新显示区域
end;
procedure Tmain.Button4Click(Sender: TObject);
begin
//启动录像(通道号,保存录像文件名,自动停止录像时间:优先权低,自动录像大小:优先权高)
Start_Video_Capture(SpinEdit1.Value, '', 0, 700); //此处为满700M自动分割一个录像文件
end;
procedure Tmain.Button5Click(Sender: TObject);
begin
//停止录像(通道号)
Stop_Video_Capture(SpinEdit1.Value)
end;
procedure Tmain.Button6Click(Sender: TObject);
begin
//视频截图(通道号,保存截图文件名,是否JPEG格式,JPEG 图片质量:1 到 100,1 最差,100 最好)
Start_Image_Capture(SpinEdit1.Value, '', False)
end;
procedure Tmain.Button7Click(Sender: TObject);
begin
//显示OSD(通道号,第一行座标,内容,第二行座标,内容,是否自动进行颜色翻转,OSD显示亮度:255 最亮0 最暗,是否显示时间)
Start_Video_OSD(SpinEdit1.Value, 12, 8, 'OSD1内容', 12, 530, 'OSD2内容', True, 255, False)
end;
procedure Tmain.Button8Click(Sender: TObject);
begin
//隐藏OSD(通道号)
Stop_Video_OSD(SpinEdit1.Value)
end;
procedure Tmain.Button9Click(Sender: TObject);
begin
//显示LOGO(通道号,座标X,座标Y,LOGO图片文件,是否半透明处理,透明色值(红绿蓝))
Start_Video_Logo(SpinEdit1.Value, 12, 530, 'Logo.bmp', True)
end;
procedure Tmain.Button10Click(Sender: TObject);
begin
//隐藏LOGO(通道号)
Stop_Video_Logo(SpinEdit1.Value)
end;
procedure Tmain.Button11Click(Sender: TObject);
begin
Board_Info := Get_Board_Info(1); //获取板卡序列号等信息(通道号-决定板卡序列号的不同)
Memo1.Text :=
PChar('型号:' + Board_Info.boardType + #13#10 +
'序列号:' + Board_Info.boardSN + #13#10 +
'系统中板卡的个数:' + inttostr(Board_Info.BoardCount) + #13#10 +
'系统中DSP个数:' + inttostr(Board_Info.DspCount) + #13#10 +
'视频处理器数:' + inttostr(Board_Info.DSPs) + #13#10 +
'编码通道个数:' + inttostr(Board_Info.EncodeChannelCount) + #13#10 +
'解码通道个数:' + inttostr(Board_Info.DecodeChannelCount) + #13#10 +
'显示通道(视频输出)个数:' + inttostr(Board_Info.DisplayChannelCount) + #13#10 + #13#10 +
'DspVersion:' + inttostr(Board_Info.SDKVersion.DspVersion) + #13#10 +
'DspBuildNum:' + inttostr(Board_Info.SDKVersion.DspBuildNum) + #13#10 +
'DriverVersion:' + inttostr(Board_Info.SDKVersion.DriverVersion) + #13#10 +
'DriverBuildNum:' + inttostr(Board_Info.SDKVersion.DriverBuildNum) + #13#10 +
'SDKVersion:' + inttostr(Board_Info.SDKVersion.SDKVersion) + #13#10 +
'SDKBuildNum:' + inttostr(Board_Info.SDKVersion.SDKBuildNum)
);
end;
procedure Tmain.Button17Click(Sender: TObject);
begin
//启动声音监听(通道号)
Start_Audio_Preview(SpinEdit1.Value)
end;
procedure Tmain.Button18Click(Sender: TObject);
begin
//停止声音监听(通道号,是否停止所有通道声音)
Stop_Audio_Preview(SpinEdit1.Value, False)
end;
procedure Tmain.Button23Click(Sender: TObject);
begin
//初始化网络服务(通道数据类型:宽带NORMAL,窄带DIALING<不支持声音>,窄带/宽带SMALLPIC<支持声音>,服务端的网络端口号和客户端的网络端口号)
Load_Net_Server(SpinEdit7.Value, SpinEdit8.Value); //可以按默认设置,端口号为5050,6050。(NORMAL, SpinEdit7.Value, SpinEdit8.Value)
end;
procedure Tmain.Button24Click(Sender: TObject);
begin
//停止网络服务
UnLoad_Net_Server
end;
procedure Tmain.Button25Click(Sender: TObject);
begin
//获取帧统计信息(通道号,帧统计信息)
Get_Frames_Statistics(SpinEdit1.Value, FRAMES_STATISTIC);
Memo1.Text :=
PChar(
'视频帧数:' + inttostr(FRAMES_STATISTIC.VideoFrames) + #13#10 +
'音频帧数:' + inttostr(FRAMES_STATISTIC.AudioFrames) + #13#10 +
'丢失帧数:' + inttostr(FRAMES_STATISTIC.FramesLost) + #13#10 +
'缓存溢出:' + inttostr(FRAMES_STATISTIC.QueueOverflow) + #13#10 +
'当前码流(kb/s):' + inttostr(FRAMES_STATISTIC.CurBps)
);
end;
procedure Tmain.Button14Click(Sender: TObject);
begin
//设置屏幕遮挡(通道号,左,上,右,下)
Start_Video_Mask(SpinEdit1.Value, 32, 32, 256, 256)
end;
procedure Tmain.Button12Click(Sender: TObject);
begin
//停止屏幕遮挡(通道号)
Stop_Video_Mask(SpinEdit1.Value)
end;
procedure Tmain.Button20Click(Sender: TObject);
begin
//启动视频丢失报警:(通道号,是否声音报警)
Start_Video_Warnning(SpinEdit1.Value, True)
end;
procedure Tmain.Button22Click(Sender: TObject);
begin
//停止视频丢失报警 (通道号)
Stop_Video_Warnning(SpinEdit1.Value)
end;
procedure Tmain.Button32Click(Sender: TObject);
begin
//获取视频报警状态(通道号,返回方式:音频或视频)
if Get_Video_State(SpinEdit1.Value) then
main.StatusBar1.Panels[1].Text := '第 ' + Format('%.2d', [SpinEdit1.Value]) + ' 通道视频报警已启动...'
else
main.StatusBar1.Panels[1].Text := '第 ' + Format('%.2d', [SpinEdit1.Value]) + ' 通道视频报警已关闭...'
end;
procedure Tmain.Button30Click(Sender: TObject);
begin
//获取音频报警状态(通道号,返回方式:音频或视频)
if Get_Audio_State(SpinEdit1.Value) then
main.StatusBar1.Panels[1].Text := '第 ' + Format('%.2d', [SpinEdit1.Value]) + ' 通道音频报警已启动...'
else
main.StatusBar1.Panels[1].Text := '第 ' + Format('%.2d', [SpinEdit1.Value]) + ' 通道音频报警已关闭...'
end;
procedure Tmain.Button34Click(Sender: TObject);
begin
//获取报警线程运行状态:为真表示线程正在运行
if Get_Warnning_State then
main.StatusBar1.Panels[1].Text := '报警线程已启动...'
else
main.StatusBar1.Panels[1].Text := '报警线程已关闭...'
end;
procedure Tmain.Button21Click(Sender: TObject);
begin
//启动音频丢失报警:(通道号,音频强度下限,是否声音报警)
Start_Audio_Warnning(SpinEdit1.Value, 20, True)
end;
procedure Tmain.Button19Click(Sender: TObject);
begin
//停止音频丢失报警 (通道号)
Stop_Audio_Warnning(SpinEdit1.Value)
end;
procedure Tmain.Button27Click(Sender: TObject);
begin
Memo1.Text := Get_SDK_Err($C0000002) //获取错误信息(错误值)
end;
procedure Tmain.Button13Click(Sender: TObject);
begin
//设置移动侦测(通道号,左,上,右,下,移动侦测灵敏度默认值为2,是否录像,警前帧数,录像文件名)
Start_Motion_Detection(SpinEdit1.Value, 0, 0, 352, 240, 2, True, 300, 'D:\alarm,mp4')
end;
procedure Tmain.Button15Click(Sender: TObject);
begin
//停止移动侦测(通道号)
Stop_Motion_Detection(SpinEdit1.Value);
end;
procedure Tmain.Button26Click(Sender: TObject);
begin
//开始屏幕输出(输出内容,输出左上角座标位置,是否透明输出,输出字体颜色RGB,是否输出时间)
Start_Screen_Draw(SpinEdit1.Value, '欢迎使用HIKSDK-2开发包')
end;
procedure Tmain.Button29Click(Sender: TObject);
begin
//停止屏幕输出(通道号)
Stop_Screen_Draw(SpinEdit1.Value);
end;
procedure Tmain.Button36Click(Sender: TObject);
var
sdkstate : TChannelState;
begin
sdkstate := Check_Channel_State(SpinEdit1.Value); //获取指定通道工作状态(通道号)
if sdkstate.Video_IsMask then
Memo1.Text := PChar('第 ' + inttostr(SpinEdit1.Value) + ' 通道视频遮挡已启动!')
else
Memo1.Text := PChar('第 ' + inttostr(SpinEdit1.Value) + ' 通道视频遮挡已停止!')
end;
procedure Tmain.Button33Click(Sender: TObject);
begin
SpinEdit2.Value := Get_Volume_Master //获取Master音量
end;
procedure Tmain.Button39Click(Sender: TObject);
begin
SpinEdit2.Value := Get_Volume_WaveOut //获取WaveOut音量
end;
procedure Tmain.Button40Click(Sender: TObject);
begin
SpinEdit2.Value := Get_Volume_Synth //获取Synth音量
end;
procedure Tmain.SpinEdit2Change(Sender: TObject);
begin
//设置Master音量
Set_Volume_Master(SpinEdit2.Value);
end;
procedure Tmain.Button38Click(Sender: TObject);
var
Ld, Dbd, Bhd, Sd : Byte;
begin
//获取视频参数(通道号,亮度,对比度,饱和度,色度)
Get_Video_Para(SpinEdit1.Value, Ld, Dbd, Bhd, Sd);
SpinEdit3.Value := Ld;
SpinEdit4.Value := Dbd;
SpinEdit5.Value := Bhd;
SpinEdit6.Value := Sd;
end;
procedure Tmain.Button44Click(Sender: TObject);
begin
//设置视频参数(通道号,亮度,对比度,饱和度,色度)
Set_Video_Para(SpinEdit1.Value, SpinEdit3.Value, SpinEdit4.Value, SpinEdit5.Value, SpinEdit6.Value)
end;
procedure Tmain.Button37Click(Sender: TObject);
begin
//快速黑白、彩色图像切换(通道号,是否黑白)
Set_Video_NoColor(SpinEdit1.Value)
end;
procedure Tmain.Button43Click(Sender: TObject);
begin
//快速黑白、彩色图像切换(通道号,是否黑白)
Set_Video_NoColor(SpinEdit1.Value, False)
end;
procedure Tmain.Button28Click(Sender: TObject);
begin
//黑屏 (通道号)
Set_Screen_Black(SpinEdit1.Value)
end;
procedure Tmain.Button31Click(Sender: TObject);
begin
//白屏 (通道号)
Set_Screen_White(SpinEdit1.Value)
end;
procedure Tmain.Button42Click(Sender: TObject);
begin
//复位视频图像参数(通道号)
Reset_Video_Para(SpinEdit1.Value)
end;
procedure Tmain.Button41Click(Sender: TObject);
begin
//调用全屏窗口(通道号,是否自动巡回显示各通道监控画面,默认不自动切换,值=0)
Start_Video_FullScreen(SpinEdit1.Value)
end;
procedure Tmain.Button35Click(Sender: TObject);
begin
Set_Volume_Mute //静音自动切换
end;
procedure Tmain.Button16Click(Sender: TObject);
begin
UnLoad_Board() //卸载板卡
end;
procedure Tmain.FormCreate(Sender: TObject);
var
List : TStringList;
begin
Set_CallBack_Func(@CallWorkState); //设置回调
List := TStringList.Create; //创建列表
Get_Protocol_List(List); //获取协议列表
cb_NameList.items := List; //在窗体列表中显示
List.Free; //释放列表
Edit2.Text := Get_LocalIP; //本地IP
Edit3.Text := Edit2.Text;
StatusBar1.Panels[3].Text := Get_SDK_Version(); //获取SDK版本号
end;
procedure Tmain.Button47Click(Sender: TObject);
begin
//发送邮件:请正确填写再发送
//Send_Mail('smtp.163.com','用户名','邮件密码','发送人邮箱','收件人邮箱','邮件主题','邮件正文')
end;
procedure Tmain.Button46Click(Sender: TObject);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -