Ejemplo n.º 1
0
 /// <summary>
 /// 获取当前实例
 /// </summary>
 /// <returns></returns>
 public static DaHuaSDKManager GetInstance()
 {
     if (_Instance == null)
     {
         _Instance = new DaHuaSDKManager();
     }
     return(_Instance);
 }
Ejemplo n.º 2
0
 public override void Close()
 {
     lock (_StatusLock)
     {
         if (VideoSource != null)
         {
             ////停止消息订阅句柄
             //if (m_nRealLoadPic != 0)
             //{
             //    DHClient.DHStopLoadPic(m_nRealLoadPic);
             //    m_nRealLoadPic = 0;
             //}
             //停止监视
             if (m_realPlayH != 0)
             {
                 DHClient.DHStopRealPlay(m_realPlayH);
                 m_realPlayH = 0;
             }
             if (m_nLoginID != 0)
             {
                 DHClient.DHLogout(m_nLoginID);
                 m_nLoginID = 0;
             }
             if (initialized)
             {
                 DaHuaSDKManager.GetInstance().DisConnectEventHandle -= disConnect;
                 DaHuaSDKManager.GetInstance().OnlineMsgEventHandle  -= onlineMsg;
                 initialized = false;
             }
         }
         this._Status = VideoStatus.Disconnected;
     }
     if (!this.TitlePanel.InvokeRequired)
     {
         this.TitlePanel.Visible = false;
         this.video.BackColor    = Color.Navy;
         this.video.Image        = null;
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 初始化设备
        /// </summary>
        private bool Init()
        {
            //初始化SDK
            if (initialized == false)
            {
                //DHClient.DHInit(disConnect, IntPtr.Zero);
                //DHClient.DHSetAutoReconnect(onlineMsg, IntPtr.Zero);
                //initialized = true;
                //这里不直接使用DHClient初始化,是因为DHClient的disConnect和onlineMsg只支持一个事件回调,
                //所以这里使用管理器的事件处理,在管理器中使用DHClient初始化
                DaHuaSDKManager.GetInstance().DisConnectEventHandle -= disConnect;
                DaHuaSDKManager.GetInstance().DisConnectEventHandle += disConnect;
                DaHuaSDKManager.GetInstance().OnlineMsgEventHandle  -= onlineMsg;
                DaHuaSDKManager.GetInstance().OnlineMsgEventHandle  += onlineMsg;
                DaHuaSDKManager.GetInstance().InitSDK();
                initialized = true;
            }
            if (initialized == false)
            {
                return(false);
            }

            //登入设备
            if (m_nLoginID == 0)
            {
                NET_DEVICEINFO deviceInfo = new NET_DEVICEINFO();
                int            error      = 0;
                m_nLoginID = DHClient.DHLogin(VideoSource.MediaSource, (ushort)VideoSource.StreamPort
                                              , VideoSource.UserName, VideoSource.Password, out deviceInfo, out error);
            }
            if (m_nLoginID == 0)
            {
                return(false);
            }

            return(true);
        }