コード例 #1
0
 private void SetVideo()
 {
     try
     {
         //CameraParm cp = Context.dbOper.CameraParmBL.GetEntityWhere("SubID=" + SubID,null);
         //if (cp != null)
         //{
         //    //只有普通摄像头
         //    if (cp.IsExistThermal <= 0 && cp.IsExistHawkeye <= 0)
         //    {
         //        this.pnlVideoType.Dock = DockStyle.None;
         //        this.pnlVideoType.Visible = false;
         //        CommVideo_Click(null, null);
         //    }
         //    //有红外热成像摄像头
         //    if (cp.IsExistThermal <= 0)
         //    {
         //        this.ThermalVideo.Visible = false;
         //    }
         //    //有鹰眼全景摄像头
         //    if (cp.IsExistHawkeye <= 0)
         //    {
         //        this.EagleVideo.Visible = false;
         //    }
         //}
         this.pnlVideoType.Dock    = DockStyle.None;
         this.pnlVideoType.Visible = false;
         CommVideo_Click(null, null);
     }
     catch (Exception ex)
     {
         TXTWriteHelper.WriteException("frmVideo-SetVideo-" + ex.ToString());
     }
 }
コード例 #2
0
ファイル: UCHikVideo.cs プロジェクト: wollfman/ToolsManage
        /// <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());
            }
        }
コード例 #3
0
ファイル: UCHikVideo.cs プロジェクト: wollfman/ToolsManage
        private void PreviewVideo()
        {
            try
            {
                int channel = 0;
                //IntPtr picHandle = new IntPtr();
                //picHandle = IntPtr.Zero;
                m_StreamPlayMode = 0;
                if (dicRealHandlerChannel != null && dicRealHandlerChannel.Count > 0)
                {
                    dicRealHandlerChannel.Clear();
                }
                foreach (Control ctrl in this.pnlVideo.Controls)
                {
                    //if (Convert.ToInt16(ctrl.Tag) == 0)
                    {
                        if (ctrl.GetType() == typeof(UCVideo))
                        {
                            int tag = Convert.ToInt32(ctrl.Tag);
                            //if (tag > 0)
                            //    return;
                            //if (tag == 0)
                            {
                                m_Channel[tag] = -1;
                                if (m_lRealHandle[tag] < 0)
                                {
                                    channel = tag + StartDChan;
                                    UCVideo RealPlayWnd = ctrl as UCVideo;
                                    CHCNetSDK.NET_DVR_PREVIEWINFO lpPreviewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO();
                                    //lpPreviewInfo.hPlayWnd = RealPlayWnd.Pic.Handle;//预览窗口 利用回调播放库显示视频
                                    lpPreviewInfo.lChannel = channel;//预te览的设备通道
                                    //if(QJChannel!=null && QJChannel.Contains((channel%StartDChan+1).ToString()))
                                    //    lpPreviewInfo.dwStreamType = 0;//码流类型:0-主码流,1-子码流,2-码流3,3-码流4,以此类推
                                    //else
                                    //    lpPreviewInfo.dwStreamType = 1;
                                    lpPreviewInfo.hPlayWnd      = IntPtr.Zero;
                                    lpPreviewInfo.DisplayBufNum = 6;
                                    lpPreviewInfo.dwStreamType  = 0;    //初始预览用子码流  放大的时候用主码流
                                    lpPreviewInfo.dwLinkMode    = 0;    //连接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
                                    lpPreviewInfo.bBlocked      = true; //0- 非阻塞取流,1- 阻塞取流
                                    RealPlayWnd.HikPreViewInfo  = lpPreviewInfo;
                                    RealPlayWnd.LUserID         = m_lUserID;

                                    m_RealDataCallBack[tag] = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); //预览实时流回调函数
                                    IsCallBack = true;
                                    IntPtr pUser = new IntPtr();                                                //用户数据

                                    //打开预览 Start live view
                                    m_lRealHandle[tag] = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, m_RealDataCallBack[tag], pUser);
                                    if (!dicRealHandlerChannel.ContainsKey(m_lRealHandle[tag]))
                                    {
                                        dicRealHandlerChannel.Add(m_lRealHandle[tag], channel);
                                    }
                                    else
                                    {
                                        dicRealHandlerChannel[m_lRealHandle[tag]] = channel;
                                    }
                                    RealPlayWnd.VideoHandle = m_lRealHandle[tag];

                                    //if (!dicPreviewInfo.ContainsKey(tag))
                                    //    dicPreviewInfo.Add(tag, lpPreviewInfo);  //预览视频信息
                                    if (m_lRealHandle[tag] < 0)
                                    {//预览失败
                                    }
                                    else
                                    {                        //预览成功
                                        IsPreviewing = true; //正在预览
                                    }
                                }
                                else
                                {
                                }
                            }
                        }
                    }
                }
                if (IsPreviewing == true)
                {
                    this.pnlPreview.BackgroundImage = global::ToolsManage.Properties.Resources.停止;
                }
            }
            catch (Exception ex)
            {
                TXTWriteHelper.WriteException("UCHikVideo-PreviewVideo-" + ex.ToString());
            }
        }