【无标题】关于摄像头的学习

1.构造函数     

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载

2.Public int Id{get;set;}含义

公有成员变量定义,后边的get,set是默认的方法的简写。默认方法为:

Public int ID{get {return id;}set {id = value;} }

3.C#线程(一)概述及常用方法

C#线程(一)概述及常用方法_subin_iecas的博客-CSDN博客_c# 线程4

 4.从textbox中读取IP地址。

         struLogInfo = new CHCNetSDK.NET_DVR_USER_LOGIN_INFO();

         //设备IP地址或者域名
         byte[] byIP = System.Text.Encoding.Default.GetBytes(textBoxIP.Text);
         struLogInfo.sDeviceAddress = new byte[129];
         byIP.CopyTo(struLogInfo.sDeviceAddress, 0);

调用了CHCNetSDK文件中的结构函数NET_DVR_USER_LOGIN_INFO。

byte[] Encoding.GetBytes(string s):在派生类中重写时,将指定字符串中的所有字符编码为一个字节序列,返回一个字节数组。对应using System.Text。

将byIP一维数组中的所有元素复制到struLogInfo.sDeviceAddress中,从struLogInfo.sDeviceAddress的第零位开始。

IP地址、用户名和密码因为是字符串类型,都是这样子的赋值给调用的函数中的变量的。

端口号不同:

struLogInfo.wPort = ushort.Parse(textBoxPort.Text);//设备服务端口号

ushour:16位无符号整数。

ushort.Parse(string s) :将数字的字符串表示形式转换为它的等效16位无符号整数。

5.登录设备
     m_lUserID = CHCNetSDK.NET_DVR_Login_V40(ref struLogInfo, ref DeviceInfo);

m_lUserID 作为设备是否成功登录的标志变量,一开始的值为-1,在该语句失败时,CHCNetSDK.NET_DVR_Login_V40仍会返回-1,若成功,则返回用户ID信息,即DeviceInfo

使m_IUserID的值不为零,以进行接下来的语句。

CHCNetSDK.NET_DVR_Login_V40为调用的HCNetSDK.dll文件中的方法,需要输入设备IP、设备端口号、用户名、密码,即运用struLogInfo调用函数定义的变量。

6.预览实现

if (m_lRealHandle < 0)
    {
      CHCNetSDK.NET_DVR_PREVIEWINFO lpPreviewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO();
       IpPreviewInfo.hPlayWnd = RealPlayWnd.Handle;//预览窗口
       IpPreviewInfo.lChannel = Int16.Parse(textBoxChannel.Text)

与用户登录定义方式相似,调用CHCNeSDK中的结构函数NET_DVR_PREVIEWINFO来定义变量,该结构函数的变量是之后调用dll文件中的方法的关键。

     IntPtr pUser = new IntPtr();//用户数据,IntPtr用于表示指针或句柄的平台特定类型。

     //打开预览 Start live view
     m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, null/*RealData*/, pUser);

调用dll文件中的NET_DVR_RealPlay_V40函数,需要输入用户ID信息m_lUserID,预览参数设置lpPreviewInfo,码流数据回调函数和pUser用户数据(?)
     if (m_lRealHandle < 0)
         {
           iLastErr = CHCNetSDK.NET_DVR_GetLastError();
           str = "NET_DVR_RealPlay_V40 failed, error code= " + iLastErr; //预览失败,输出错误号
           MessageBox.Show(str);
           return;
          }
          else
            {
                //预览成功
                Preview.Text = "Stop Live View";
              }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值