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()); } }
/// <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()); } }
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()); } }