📄 main_unit.pas
字号:
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(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)
end;
procedure Tmain.Button22Click(Sender: TObject);
begin
//停止视频丢失报警 (通道号)
Stop_Video_Warnning(SpinEdit1.Value)
end;
procedure Tmain.Button32Click(Sender: TObject);
begin
//获取音视频报警状态(通道号,返回方式:音频或视频)
if Get_AV_State(SpinEdit1.Value, False) then
main.StatusBar1.Panels[1].Text := '第 ' + IntToStr(SpinEdit1.Value) + ' 通道视频报警已启动...'
else
main.StatusBar1.Panels[1].Text := '第 ' + IntToStr(SpinEdit1.Value) + ' 通道视频报警已关闭...'
end;
procedure Tmain.Button30Click(Sender: TObject);
begin
//获取音视频报警状态(通道号,返回方式:音频或视频)
if Get_AV_State(SpinEdit1.Value, True) then
main.StatusBar1.Panels[1].Text := '第 ' + IntToStr(SpinEdit1.Value) + ' 通道音频报警已启动...'
else
main.StatusBar1.Panels[1].Text := '第 ' + IntToStr(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)
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')
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, '海康威视三次开发包示例')
end;
procedure Tmain.Button29Click(Sender: TObject);
begin
//停止屏幕输出(通道号)
Stop_Screen_Draw(SpinEdit1.Value);
end;
procedure Tmain.Button36Click(Sender: TObject);
var
sdkstate : TSdkState;
begin
sdkstate := Get_SDK_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
List := TStringList.Create; //创建列表
Get_Pro_List(List); //获取协议列表
cb_NameList.items := List; //在窗体列表中显示
Memo1.Lines.AddStrings(List);
List.Free; //释放列表
edit1.Text := Get_UserID; //获取机器码
Edit2.Text := Get_LocalIP; //本地IP
StatusBar1.Panels[3].Text := Get_SDK_Version(); //获取SDK版本号
if Get_SDK_Reg then
StatusBar1.Panels[4].Text := '已注册'
else
StatusBar1.Panels[4].Text := '未注册';
end;
procedure Tmain.Button47Click(Sender: TObject);
begin
//发送邮件:请正确填写再发送
//Send_Mail('smtp.163.com','用户名','邮件密码','发送人邮箱','收件人邮箱','邮件主题','邮件正文')
end;
procedure Tmain.Button46Click(Sender: TObject);
begin
if Get_SDK_Reg then //获取注册状态
ShowMessage('已注册')
else
ShowMessage('未注册');
end;
procedure Tmain.Button45Click(Sender: TObject);
begin
ShowMessage('您的机器码是: ' + Get_UserID); //获取机器码
end;
procedure Tmain.Button48Click(Sender: TObject);
begin
Application.MessageBox('海康视频采集卡三次开发包示例' + #13#10#13#10 +
'支持DS-40xxHC、DS-40xxHC+、' + #13#10 + '40xxMD卡,具体请阅读本开发' +
#13#10 + '包附带的说明文档。' + #13#10#13#10 + '注册软件请联系:' + #13#10 + 'QQ:366733082' +
#13#10 + 'Mail:366733082@163.com', '关于服务端', MB_OK + MB_ICONINFORMATION +
MB_TOPMOST);
end;
procedure Tmain.Button49Click(Sender: TObject);
begin
ShellExecute(Handle, 'open', PChar('http://www.prowt.com/SDK2/'), nil, nil, SW_SHOW);
end;
procedure Tmain.SpeedButton1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
//鼠标按下时执行动作
Remot_Contrl(cbb_Com.ItemIndex + 1, cb_NameList.ItemIndex, se_Addr.Value, TSpeedButton(Sender).Tag);
end;
procedure Tmain.SpeedButton1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//鼠标弹起时停止动作
Remot_Contrl(cbb_Com.ItemIndex + 1, cb_NameList.ItemIndex, se_Addr.Value, TSpeedButton(Sender).Tag, True);
end;
procedure Tmain.SpeedButton14Click(Sender: TObject);
begin
//单击时执行动作
Remot_Contrl(cbb_Com.ItemIndex + 1, cb_NameList.ItemIndex, se_Addr.Value, TSpeedButton(Sender).Tag);
end;
procedure Tmain.SpeedButton15Click(Sender: TObject);
begin
//单击时停止动作
Remot_Contrl(cbb_Com.ItemIndex + 1, cb_NameList.ItemIndex, se_Addr.Value, TSpeedButton(Sender).Tag, True);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -