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

📄 main_unit.pas

📁 视频采集卡sdk-2
💻 PAS
字号:
unit main_unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, HirkClient32, Spin, ComCtrls, ShellAPI;

type
  Tmain = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    StatusBar1: TStatusBar;
    Button17: TButton;
    Button18: TButton;
    Button19: TButton;
    Button21: TButton;
    Button45: TButton;
    Button46: TButton;
    Button47: TButton;
    Panel1: TPanel;
    Label6: TLabel;
    SpinEdit1: TSpinEdit;
    Label7: TLabel;
    edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    CheckBox1: TCheckBox;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label8: TLabel;
    SpinEdit2: TSpinEdit;
    SpinEdit3: TSpinEdit;
    SpinEdit4: TSpinEdit;
    SpinEdit5: TSpinEdit;
    SpinEdit6: TSpinEdit;
    Button33: TButton;
    Button35: TButton;
    Button37: TButton;
    Button38: TButton;
    Button39: TButton;
    Button40: TButton;
    Button43: TButton;
    Button44: TButton;
    Label9: TLabel;
    SpinEdit7: TSpinEdit;
    Label10: TLabel;
    SpinEdit8: TSpinEdit;
    Button20: TButton;
    Bevel1: TBevel;
    Button48: TButton;
    Button49: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button2Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure Button45Click(Sender: TObject);
    procedure Button46Click(Sender: TObject);
    procedure Button33Click(Sender: TObject);
    procedure Button39Click(Sender: TObject);
    procedure Button35Click(Sender: TObject);
    procedure Button40Click(Sender: TObject);
    procedure Button38Click(Sender: TObject);
    procedure Button44Click(Sender: TObject);
    procedure Button37Click(Sender: TObject);
    procedure Button43Click(Sender: TObject);
    procedure Button47Click(Sender: TObject);
    procedure Button48Click(Sender: TObject);
    procedure Button49Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  main              : Tmain;

implementation

{$R *.dfm}
procedure Showmsg(Msg: PChar);
begin
  Application.MessageBox(Msg, '信息', MB_OK + MB_ICONINFORMATION + MB_TOPMOST);
end;

procedure Express(Channels: Byte; War_Style: Byte; ReturnStr: string = ''); stdcall;
var
  S                 : string;
begin
  Application.ProcessMessages;
  S := '第 ' + IntToStr(Channels) + ' 通道';
  with main.StatusBar1.Panels[1] do
    case War_Style of
      0:
        Text := '正在打开 ' + S;
      1:
        Text := S + '音频信号丢失';
      2:
        Text := S + '视频信号丢失';
      3:
        Text := S + '监控区域内有物体移动!';
      4:
        Text := S + '录像文件: ' + extractfilename(ReturnStr) + ' 到指定大小,自动分割生成新的录像文件';
      5:
        Text := S + '开始录像';
      6:
        Text := S + '停止录像';
      7:
        Text := S + '启动声音监听';
      8:
        Text := S + '关闭声音监听';
      9:
        Text := S + '启动视频预览';
      10:
        Text := S + '关闭视频预览';
      11:
        Text := S + '启动录像';
      12:
        Text := S + '关闭录像';
      13:
        Text := S + '启动视频报警';
      14:
        Text := S + '关闭视频报警';
      15:
        Text := S + '启动音频报警';
      16:
        Text := S + '关闭音频报警';
      17:
        Text := S + '启动移动侦测';
      18:
        Text := S + '关闭移动侦测';
      19:
        Text := S + '启动视频遮挡';
      20:
        Text := S + '关闭视频遮挡';
      21:
        Text := S + '开始屏幕输出';
      22:
        Text := S + '关闭屏幕输出';
      23:
        Text := S + '启动视频LOGO';
      24:
        Text := S + '关闭视频LOGO';
      25:
        Text := S + '开始视频OSD';
      26:
        Text := S + '关闭视频OSD';
      27:
        Text := S + '切换为黑白视频';
      28:
        Text := S + '切换为彩色视频';
      29:
        Text := S + '切换为黑屏显示';
      30:
        Text := S + '切换为白屏显示';
      31:
        Text := S + '视频色彩复位';
      32:
        Text := S + '启动全屏显示';
      33:
        Text := '采集卡已加载';
      34:
        Text := '采集卡已卸载';
      35:
        Text := '网络服务已启动';
      36:
        Text := '网络服务已停止';
      37:
        Text := '静音';
      38:
        Text := '音量恢复';
      39:
        Text := '云台控制命令发送';
      40:
        Text := '系统出现未知错误';
      41:
        if Channels = main.SpinEdit1.Value then
          Text := S + '录像文件大小:' + ReturnStr + ' M';
      42:
        Text := '配置端口号成功...';
      43:
        Text := '连接服务端成功...';
      44:
        Text := '正在连接...';
      45:
        Text := '开始接收图象...';
      46:
        Text := '异常退出...';
      47:
        Text := '接收完毕,退出...';
      48:
        Text := '无法联系服务端...';
      49:
        Text := '服务端拒绝访问...';
      50:
        Text := '无效...';
      51:
        Text := '停止客户端连接...';
      52:
        Text := '图像抓取成功...';
      53:
        Text := '初始化服务端网络连接成功...';
    end;

end;

procedure Tmain.Button1Click(Sender: TObject);
begin
  //启动客户端并连接服务器(服务器IP地址,图像显示区域句柄,远程通道号,是否解码:默认解码)
  Start_Client(PChar(Edit2.Text), Panel1.Handle, SpinEdit1.Value, CheckBox1.Checked);
end;

procedure Tmain.FormCreate(Sender: TObject);
begin
  Set_CallBack_Func(@Express);          //设置回调
  Set_Client_NetPort(Handle, SpinEdit7.Value, SpinEdit8.Value); //配置端口号

  edit1.Text := Get_UserID;             //获取机器码
  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.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  //停止客户端连接
  Stop_Client()
end;

procedure Tmain.Button2Click(Sender: TObject);
begin
  //停止客户端连接
  Stop_Client();
  //刷新显示区
  Panel1.Repaint
end;

procedure Tmain.Button15Click(Sender: TObject);
begin
  //对服务端的nChannel 通道网络连接初始化,结束当前所有用户对它的访问
  Shut_Client
end;

procedure Tmain.Button3Click(Sender: TObject);
begin
  //抓取服务器监控图像(保存文件名),抓图得到的图像数据保存成BMP文件
  Start_Image_Capture('')
end;

procedure Tmain.Button4Click(Sender: TObject);
begin
  //启动录像(通道号,保存录像文件名,自动停止录像时间:优先权低,自动录像大小:优先权高)
  Start_Video_Capture('', 2, 3)
end;

procedure Tmain.Button5Click(Sender: TObject);
begin
  //停止录像
  Stop_Video_Capture()
end;

procedure Tmain.Button6Click(Sender: TObject);
begin
  //启动音频预览
  Start_Audio_Preview
end;

procedure Tmain.Button7Click(Sender: TObject);
begin
  //停止音频预览
  Stop_Audio_Preview
end;

procedure Tmain.Button8Click(Sender: TObject);
begin
  //快速黑白、彩色图像切换(通道号,是否黑白)
  Set_Video_NoColor()
end;

procedure Tmain.Button9Click(Sender: TObject);
begin
  //快速黑白、彩色图像切换(通道号,是否黑白)
  Set_Video_NoColor(False)
end;

procedure Tmain.Button10Click(Sender: TObject);
begin
  //复位视频图像参数
  Reset_Video_Para
end;

procedure Tmain.Button11Click(Sender: TObject);
begin
  //黑屏
  Set_Video_Black
end;

procedure Tmain.Button12Click(Sender: TObject);
begin
  //白屏
  Set_Video_White
end;

procedure Tmain.Button13Click(Sender: TObject);
begin
  //静音自动切换
  Set_Volume_Mute
end;

procedure Tmain.Button14Click(Sender: TObject);
begin
  //开始屏幕输出(通道号,输出内容,输出左上角座标位置,是否透明输出,输出字体颜色RGB,是否输出时间)
  Start_Screen_Draw('海康威视开发包')
end;

procedure Tmain.Button16Click(Sender: TObject);
begin
  //停止屏幕输出(通道号)
  Stop_Screen_Draw
end;

procedure Tmain.Button17Click(Sender: TObject);
begin
  //调用全屏窗口(是否自动巡回显示各通道监控画面,默认不自动切换,值=0)
  Start_Video_FullScreen()
end;

procedure Tmain.Button18Click(Sender: TObject);
begin
  //获取服务端的通道数(服务器IP地址)
  Showmsg(PChar('正在连接的服务器端共有 ' + IntToStr(Get_Server_ChanNum()) + ' 个通道。'));
end;

procedure Tmain.Button19Click(Sender: TObject);
begin
  //获取工作状态
  Showmsg(Get_Client_State)
end;

procedure Tmain.Button20Click(Sender: TObject);
begin
  ShowMessage('SDK版本号为: ' + Get_SDK_Version()); //获取SDK版本号;
end;

procedure Tmain.Button21Click(Sender: TObject);
begin
  //获取已经解码的总帧数
  Showmsg(PChar('已经解码的总帧数为:' + IntToStr(Get_Client_FrameNum())));
end;

procedure Tmain.Button45Click(Sender: TObject);
begin
  ShowMessage('您的机器码是: ' + Get_UserID); //获取机器码
end;

procedure Tmain.Button46Click(Sender: TObject);
begin
  if Get_SDK_Reg then                   //获取注册状态
    ShowMessage('已注册')
  else
    ShowMessage('未注册');
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.Button35Click(Sender: TObject);
begin
  Set_Volume_Mute                       //静音自动切换
end;

procedure Tmain.Button40Click(Sender: TObject);
begin
  SpinEdit2.Value := Get_Volume_Synth   //获取Synth音量
end;

procedure Tmain.Button38Click(Sender: TObject);
var
  Ld, Dbd, Bhd, Sd  : Integer;
begin
  //获取视频参数(通道号,亮度,对比度,饱和度,色度)
  Get_Video_Para(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(SpinEdit3.Value, SpinEdit4.Value, SpinEdit5.Value, SpinEdit6.Value)
end;

procedure Tmain.Button37Click(Sender: TObject);
begin
  //快速黑白、彩色图像切换(通道号,是否黑白)
  Set_Video_NoColor(True)
end;

procedure Tmain.Button43Click(Sender: TObject);
begin
  //快速黑白、彩色图像切换(通道号,是否黑白)
  Set_Video_NoColor(False)
end;

procedure Tmain.Button47Click(Sender: TObject);
begin
  //发送邮件:请正确填写再发送
  //Send_Mail('smtp.163.com','用户名','邮件密码','发送人邮箱','收件人邮箱','邮件主题','邮件正文')
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;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -