Exemple #1
0
 public bool stopPreview(int RealHandle)
 {
     //停止预览 Stop live view
     if (!CHCNetSDK.NET_DVR_StopRealPlay(RealHandle))
     {
         return(false);
     }
     if ((previewMode == 1) && (m_lPort >= 0))
     {
         if (!PlayCtrl.PlayM4_Stop(m_lPort))
         {
             return(false);
         }
         if (!PlayCtrl.PlayM4_CloseStream(m_lPort))
         {
             return(false);
         }
         if (!PlayCtrl.PlayM4_FreePort(m_lPort))
         {
             return(false);
         }
         m_lPort = -1;
     }
     return(true);
 }
 private void StopPlayBack()
 {
     //关闭当前回放视频
     if (m_lPlayBackHandle != -1)
     {
         TimerPlayBack.Enabled = false;
         SetStopState();
         bool IsStop = CHCNetSDK.NET_DVR_StopPlayBack(m_lPlayBackHandle);
         m_lPlayBackHandle = -1;
     }
     if (m_PlayBackPort >= 0)
     {
         bool isstop = PlayCtrl.PlayM4_Stop(m_PlayBackPort);
         //关闭回放流
         if (PlayCtrl.PlayM4_CloseStream(m_PlayBackPort))
         {
             PlayCtrl.PlayM4_FreePort(m_PlayBackPort);
             m_PlayBackPort = -1;
         }
         else
         {
             m_PlayBackPort = -1;
         }
     }
 }
Exemple #3
0
 private void StopVideo()
 {
     if (m_CurPlayState != PlayState.PlayStop && m_CurPlayState != PlayState.None)
     {
         if (PlayCtrl.PlayM4_Stop(m_lPort))
         {
             if (PlayCtrl.PlayM4_CloseFile(m_lPort))
             {
                 if (PlayCtrl.PlayM4_FreePort(m_lPort))
                 {
                     m_CurPlayState = PlayState.PlayStop;
                     SetCtrlEnable();
                 }
             }
             else
             {
                 uint error = PlayCtrl.PlayM4_GetLastError(m_lPort);
             }
         }
         else
         {
             uint error = PlayCtrl.PlayM4_GetLastError(m_lPort);
         }
     }
 }
        /// <summary>
        ///		Stop Preview.
        /// </summary>
        public void StopPreview()
        {
            if (livePlayer_.RealPlayHandle == -1)
            {
                debugInfo("Preview not started!");
                return;
            }

            {
                // Set to null Draw CallBack Function
                CHCNetSDK.NET_DVR_RigisterDrawFun(livePlayer_.RealPlayHandle, null, 0);
            }

            bool isStopRealPlayOk;

            {
                // Stop live view
                isStopRealPlayOk = CHCNetSDK.NET_DVR_StopRealPlay(livePlayer_.RealPlayHandle);

                if (livePlayer_.RealPlayPort >= 0)
                {
                    if (!PlayCtrl.PlayM4_Stop(livePlayer_.RealPlayPort))
                    {
                        invokeOnPreviewErrorEvent(PlayCtrl.PlayM4_GetLastError(livePlayer_.RealPlayPort), "PlayM4_Stop failed");
                    }

                    if (!PlayCtrl.PlayM4_CloseStream(livePlayer_.RealPlayPort))
                    {
                        invokeOnPreviewErrorEvent(PlayCtrl.PlayM4_GetLastError(livePlayer_.RealPlayPort), "PlayM4_CloseStream failed");
                    }

                    if (!PlayCtrl.PlayM4_FreePort(livePlayer_.RealPlayPort))
                    {
                        invokeOnPreviewErrorEvent(PlayCtrl.PlayM4_GetLastError(livePlayer_.RealPlayPort), "PlayM4_FreePort failed");
                    }
                }
            }

            livePlayer_ = LivePlayer.Default();

            if (isStopRealPlayOk)
            {
                debugInfo("NET_DVR_StopRealPlay succ!");
            }
            else
            {
                throw new NvrSdkException(CHCNetSDK.NET_DVR_GetLastError(), "NET_DVR_StopRealPlay failed");
            }
        }
Exemple #5
0
        private void btnPreview_Click(object sender, EventArgs e)
        {
            if (_mLUserId < 0)
            {
                MessageBox.Show(@"Please login the device firstly!");
                return;
            }

            if (_mBRecord)
            {
                MessageBox.Show(@"Please stop recording firstly!");
                return;
            }

            if (_mLRealHandle < 0)
            {
                var lpPreviewInfo = new ChcNetSdk.NetDvrPreviewinfo
                {
                    hPlayWnd     = RealPlayWnd.Handle,
                    lChannel     = _iChannelNum[(int)_iSelIndex],
                    dwStreamType = 0,
                    dwLinkMode   = 0,
                    bBlocked     = true
                };
                //预览窗口 live view window
                //预览的设备通道 the device channel number
                //码流类型:0-主码流,1-子码流,2-码流3,3-码流4,以此类推
                //连接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
                //0- 非阻塞取流,1- 阻塞取流

                var pUser = IntPtr.Zero;//用户数据 user data

                if (comboBoxView.SelectedIndex == 0)
                {
                    //打开预览 Start live view
                    _mLRealHandle = ChcNetSdk.NET_DVR_RealPlay_V40(_mLUserId, ref lpPreviewInfo, null /*RealData*/, pUser);
                }
                else
                {
                    lpPreviewInfo.hPlayWnd = IntPtr.Zero; //预览窗口 live view window
                    _mPtrRealHandle        = RealPlayWnd.Handle;
                    _realData     = RealDataCallBack;     //预览实时流回调函数 real-time stream callback function
                    _mLRealHandle = ChcNetSdk.NET_DVR_RealPlay_V40(_mLUserId, ref lpPreviewInfo, _realData, pUser);
                }

                if (_mLRealHandle < 0)
                {
                    _iLastErr = ChcNetSdk.NET_DVR_GetLastError();
                    _str      = "NET_DVR_RealPlay_V40 failed, error code= " + _iLastErr; //预览失败,输出错误号 failed to start live view, and output the error code.
                    DebugInfo(_str);
                }
                else
                {
                    //预览成功
                    DebugInfo("NET_DVR_RealPlay_V40 succ!");
                    btnPreview.Text = @"Stop View";
                }
            }
            else
            {
                //停止预览 Stop live view
                if (!ChcNetSdk.NET_DVR_StopRealPlay(_mLRealHandle))
                {
                    _iLastErr = ChcNetSdk.NET_DVR_GetLastError();
                    _str      = "NET_DVR_StopRealPlay failed, error code= " + _iLastErr;
                    DebugInfo(_str);
                    return;
                }

                if ((comboBoxView.SelectedIndex == 1) && (_mLPort >= 0))
                {
                    if (!PlayCtrl.PlayM4_Stop(_mLPort))
                    {
                        _iLastErr = PlayCtrl.PlayM4_GetLastError(_mLPort);
                        _str      = "PlayM4_Stop failed, error code= " + _iLastErr;
                        DebugInfo(_str);
                    }
                    if (!PlayCtrl.PlayM4_CloseStream(_mLPort))
                    {
                        _iLastErr = PlayCtrl.PlayM4_GetLastError(_mLPort);
                        _str      = "PlayM4_CloseStream failed, error code= " + _iLastErr;
                        DebugInfo(_str);
                    }
                    if (!PlayCtrl.PlayM4_FreePort(_mLPort))
                    {
                        _iLastErr = PlayCtrl.PlayM4_GetLastError(_mLPort);
                        _str      = "PlayM4_FreePort failed, error code= " + _iLastErr;
                        DebugInfo(_str);
                    }
                    _mLPort = -1;
                }

                DebugInfo("NET_DVR_StopRealPlay succ!");
                _mLRealHandle   = -1;
                btnPreview.Text = @"Live View";
                RealPlayWnd.Invalidate();//刷新窗口 refresh the window
            }
        }
        private void btnPreview_Click(object sender, EventArgs e)
        {
            if (camera_id < 0)
            {
                MessageBox.Show("Please login the device firstly!");
                return;
            }

            if (m_bRecord)
            {
                MessageBox.Show("Please stop recording firstly!");
                return;
            }
            //    MessageBox.Show();
            if (camera_handle < 0)
            {
                CHCNetSDK.NET_DVR_PREVIEWINFO lpPreviewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO();
                lpPreviewInfo.hPlayWnd     = picCameraOutput.Handle;      //预览窗口 live view window
                lpPreviewInfo.lChannel     = iChannelNum[(int)iSelIndex]; //预览的设备通道 the device channel number
                lpPreviewInfo.dwStreamType = 0;                           //码流类型:0-主码流,1-子码流,2-码流3,3-码流4,以此类推
                lpPreviewInfo.dwLinkMode   = 0;                           //连接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
                lpPreviewInfo.bBlocked     = true;                        //0- 非阻塞取流,1- 阻塞取流

                IntPtr pUser = IntPtr.Zero;                               //用户数据 user data

                if (true)
                {
                    //打开预览 Start live view
                    camera_handle = CHCNetSDK.NET_DVR_RealPlay_V40(camera_id, ref lpPreviewInfo, null /*RealData*/, pUser);
                }
                else
                {
                    lpPreviewInfo.hPlayWnd = IntPtr.Zero;                             //预览窗口 live view window
                    m_ptrRealHandle        = picCameraOutput.Handle;
                    RealData      = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); //预览实时流回调函数 real-time stream callback function
                    camera_handle = CHCNetSDK.NET_DVR_RealPlay_V40(camera_id, ref lpPreviewInfo, RealData, pUser);
                }

                if (camera_handle < 0)
                {
                    iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    str      = "NET_DVR_RealPlay_V40 failed, error code= " + iLastErr; //预览失败,输出错误号 failed to start live view, and output the error code.
                    DebugInfo(str);
                    return;
                }
                else
                {
                    //预览成功
                    DebugInfo("NET_DVR_RealPlay_V40 succ!");
                    //btnPreview.Text = "Stop View";
                }
            }
            else
            {
                //停止预览 Stop live view
                if (!CHCNetSDK.NET_DVR_StopRealPlay(camera_handle))
                {
                    iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    str      = "NET_DVR_StopRealPlay failed, error code= " + iLastErr;
                    DebugInfo(str);
                    return;
                }

                if ((true) && (m_lPort >= 0))
                {
                    if (!PlayCtrl.PlayM4_Stop(m_lPort))
                    {
                        iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                        str      = "PlayM4_Stop failed, error code= " + iLastErr;
                        DebugInfo(str);
                    }
                    if (!PlayCtrl.PlayM4_CloseStream(m_lPort))
                    {
                        iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                        str      = "PlayM4_CloseStream failed, error code= " + iLastErr;
                        DebugInfo(str);
                    }
                    if (!PlayCtrl.PlayM4_FreePort(m_lPort))
                    {
                        iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                        str      = "PlayM4_FreePort failed, error code= " + iLastErr;
                        DebugInfo(str);
                    }
                    m_lPort = -1;
                }

                DebugInfo("NET_DVR_StopRealPlay succ!");
                camera_handle = -1;
                // btnPreview.Text = "Live View";
                picCameraOutput.Invalidate();//刷新窗口 refresh the window
            }
            return;
        }
        private void ConnectToCamera()
        {
            try
            {
                string ip_address_top = txtIPAddress.Text;

                Int16  DVRPortNumber = 8000;
                string DVRUserName   = txtUsername.Text;
                string DVRPassword   = txtPassword.Text;
                //登录设备 Login the device
                camera_id       = CHCNetSDK.NET_DVR_Login_V30(ip_address_top, DVRPortNumber, DVRUserName, DVRPassword, ref DeviceInfo_top);
                dwAChanTotalNum = (uint)DeviceInfo_top.byChanNum;

                for (i = 0; i < dwAChanTotalNum; i++)
                {
                    ListAnalogChannel(i + 1, 1);
                    iChannelNum[i] = i + (int)DeviceInfo_top.byStartChan;
                }
                if (camera_id < 0)
                {
                    if (MessageBox.Show("IP Cameras Connecting Error", "Fatal Error - IP Camera", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error) == DialogResult.Retry)
                    {
                        btnStart_Click(null, null);
                        return;
                    }
                }
                if (m_bRecord)
                {
                    MessageBox.Show("Please stop recording firstly!");
                    return;
                }
                if (camera_handle < 0)
                {
                    //  StartLiveView();

                    if (camera_handle < 0)
                    {
                        iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                        str      = "NET_DVR_RealPlay_V40 failed, error code= " + iLastErr; //预览失败,输出错误号 failed to start live view, and output the error code.
                        DebugInfo(str);
                        return;
                    }
                    else
                    {
                        //预览成功
                        DebugInfo("NET_DVR_RealPlay_V40 succ!");
                        // btnStart.Text = "Stop View";
                    }
                }
                else
                {
                    //停止预览 Stop live view
                    if (!CHCNetSDK.NET_DVR_StopRealPlay(camera_handle))
                    {
                        iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                        str      = "NET_DVR_StopRealPlay failed, error code= " + iLastErr;
                        DebugInfo(str);
                        return;
                    }

                    if ((true) && (m_lPort >= 0))
                    {
                        if (!PlayCtrl.PlayM4_Stop(m_lPort))
                        {
                            iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                            str      = "PlayM4_Stop failed, error code= " + iLastErr;
                            DebugInfo(str);
                        }
                        if (!PlayCtrl.PlayM4_CloseStream(m_lPort))
                        {
                            iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                            str      = "PlayM4_CloseStream failed, error code= " + iLastErr;
                            DebugInfo(str);
                        }
                        if (!PlayCtrl.PlayM4_FreePort(m_lPort))
                        {
                            iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                            str      = "PlayM4_FreePort failed, error code= " + iLastErr;
                            DebugInfo(str);
                        }
                        m_lPort = -1;
                    }

                    DebugInfo("NET_DVR_StopRealPlay succ!");
                    camera_handle = -1;
                    //btnStart.Text= "Live View";
                    picCameraOutput.Invalidate();//刷新窗口 refresh the window
                }
            }
            catch
            {
                //btnStart.Enabled = true;
                //btnStop.Enabled = false;
                MessageBox.Show("Error in Connecting Camera\nContact SSF Groups");
                Application.Exit();
                this.Close();
                return;
            }

            //btnStart.Enabled = false;
        }
Exemple #8
0
        /// <summary>
        /// 关闭视频
        /// </summary>
        public override void CloseAllVideo(bool IsExit)
        {
            try
            {
                for (int i = 0; i < m_lRealHandle.Length; i++)
                {
                    if (IsCallBack)
                    {
                        if (m_Channel[i] != -1)
                        {
                            //if (!PlayCtrl.PlayM4_FEC_Disable(m_Channel[i]))
                            //{
                            //    iLastErr = PlayCtrl.PlayM4_GetLastError(m_Channel[i]);
                            //}
                            if (!PlayCtrl.PlayM4_Stop(m_Channel[i]))
                            {
                                iLastErr = PlayCtrl.PlayM4_GetLastError(m_Channel[i]);
                            }
                            if (!PlayCtrl.PlayM4_CloseStream(m_Channel[i]))
                            {
                                iLastErr = PlayCtrl.PlayM4_GetLastError(m_Channel[i]);
                            }
                            //if (!PlayCtrl.PlayM4_CloseFile(m_Channel[i]))
                            //{
                            //    iLastErr = PlayCtrl.PlayM4_GetLastError(m_Channel[i]);
                            //}
                            if (!PlayCtrl.PlayM4_FreePort(m_Channel[i]))
                            {
                                iLastErr = PlayCtrl.PlayM4_GetLastError(m_Channel[i]);
                            }
                            m_Channel[i] = -1;
                        }
                    }
                    if (m_lRealHandle[i] >= 0)
                    {
                        bool IsStopReal = CHCNetSDK.NET_DVR_StopRealPlay(m_lRealHandle[i]);
                        m_lRealHandle[i] = -1;
                    }
                    IsPreviewing = false;
                }
                IsPreviewing = false;
                this.pnlPreview.BackgroundImage = global::ToolsManage.Properties.Resources.播放;
                //关闭当前回放视频
                if (m_lPlayBackHandle != -1)
                {
                    CHCNetSDK.NET_DVR_StopPlayBack(m_lPlayBackHandle);
                    m_lPlayBackHandle = -1;
                }
                if (m_PlayBackPort != -1)
                {
                    PlayCtrl.PlayM4_Stop(m_PlayBackPort);
                    if (PlayCtrl.PlayM4_CloseStream(m_PlayBackPort))
                    {
                        PlayCtrl.PlayM4_FreePort(m_PlayBackPort);
                        m_PlayBackPort = -1;
                    }
                }

                //if (m_PlayBackRet >= 0)
                //{
                //    CHCNetSDK.NET_DVR_StopPlayBack(m_PlayBackRet);
                //    m_PlayBackRet = -1;
                //}
                bool IsOk = false;
                if (IsExit)
                {
                    if (m_lUserID >= 0)
                    {
                        //IsOk = CHCNetSDK.NET_DVR_Logout_V30(m_lUserID);
                        IsOk = CHCNetSDK.NET_DVR_Logout(m_lUserID);
                    }
                    if (m_bInitSDK == true)
                    {
                        IsOk = CHCNetSDK.NET_DVR_Cleanup();
                    }
                    if (!IsOk)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                TXTWriteHelper.WriteException("StopHikVideo-" + ex.ToString());
            }
        }
Exemple #9
0
        public void btnPreview_Click_1(object sender, EventArgs e)
        {
            if (m_lUserID < 0)
            {
                DebugInfo("预览失败,请检查是否登录录像机!");
                return;
            }
            if (m_bRecord)
            {
                DebugInfo("预览失败,请先停止正在录制的录像机!");
                return;
            }

            if (m_lRealHandle < 0)
            {
                CHCNetSDK.NET_DVR_PREVIEWINFO lpPreviewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO();
                lpPreviewInfo.hPlayWnd        = RealPlayWnd.Handle;          //预览窗口 live view window
                lpPreviewInfo.lChannel        = iChannelNum[(int)iSelIndex]; //预览的设备通道 the device channel number
                lpPreviewInfo.dwStreamType    = 0;                           //码流类型:0-主码流,1-子码流,2-码流3,3-码流4,以此类推
                lpPreviewInfo.dwLinkMode      = 0;                           //连接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
                lpPreviewInfo.bBlocked        = true;                        //0- 非阻塞取流,1- 阻塞取流
                lpPreviewInfo.dwDisplayBufNum = 15;                          //播放库显示缓冲区最大帧数
                IntPtr pUser = IntPtr.Zero;                                  //用户数据 user data
                if (comboBoxView.SelectedIndex == 0)
                {
                    //打开预览 Start live view
                    m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, null /*RealData*/, pUser);
                }
                else
                {
                    lpPreviewInfo.hPlayWnd = IntPtr.Zero;                             //预览窗口 live view window
                    m_ptrRealHandle        = RealPlayWnd.Handle;
                    RealData      = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); //预览实时流回调函数 real-time stream callback function
                    m_lRealHandle = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, RealData, pUser);
                }
                if (m_lRealHandle < 0)
                {
                    iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    str      = "预览失败,错误代码:" + iLastErr;
                    DebugInfo(str);
                    return;
                }
                else
                {
                    //预览成功
                    DebugInfo("预览成功!");
                    recordStatus    = 3;
                    btnPreview.Text = "关闭录像机";
                }
            }
            else
            {
                //停止预览 Stop live view
                if (!CHCNetSDK.NET_DVR_StopRealPlay(m_lRealHandle))
                {
                    iLastErr = CHCNetSDK.NET_DVR_GetLastError();
                    str      = "停止预览失败,错误代码:" + iLastErr;
                    DebugInfo(str);
                    return;
                }

                if ((comboBoxView.SelectedIndex == 1) && (m_lPort >= 0))
                {
                    if (!PlayCtrl.PlayM4_Stop(m_lPort))
                    {
                        iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                        str      = "PlayM4_Stop failed, error code= " + iLastErr;
                        DebugInfo(str);
                    }
                    if (!PlayCtrl.PlayM4_CloseStream(m_lPort))
                    {
                        iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                        str      = "PlayM4_CloseStream failed, error code= " + iLastErr;
                        DebugInfo(str);
                    }
                    if (!PlayCtrl.PlayM4_FreePort(m_lPort))
                    {
                        iLastErr = PlayCtrl.PlayM4_GetLastError(m_lPort);
                        str      = "PlayM4_FreePort failed, error code= " + iLastErr;
                        DebugInfo(str);
                    }
                    m_lPort = -1;
                }
                DebugInfo("停止预览成功!");
                m_lRealHandle   = -1;
                recordStatus    = 2;
                btnPreview.Text = "启动录像机";
                RealPlayWnd.Invalidate();//刷新窗口 refresh the window
            }
            return;
        }