⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_unit.pas

📁 DELPHI开发包
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  //启动预览(通道号,预览句柄,预览区域,是否设置预览用 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 + -