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