private void PlayByName() { if (m_nNetPlayHandle >= 0) { timerNetPlayBack.Enabled = false; XMSDK.H264_DVR_StopPlayBack(m_nNetPlayHandle); m_nNetPlayHandle = 0; trackBarNetPlayPos.Value = 0; m_bOpenAudio = false; m_bPauseNetPlay = false; } m_nFastTypeNet = 0; m_nSlowTypeNet = 0; if (m_nNetPlayHandle == 0) { string csFileName = ""; int nSelected = listFile.SelectedItems.Count; if (nSelected == 0) { MessageBox.Show("SelectFile"); return; } H264_DVR_FILE_DATA FileInfo = (H264_DVR_FILE_DATA)listFile.FocusedItem.Tag; FileInfo.hWnd = (IntPtr)pictureBoxNetVideoWnd.Handle; XMSDK.fDownLoadPosCallBack downloadCallBack = new XMSDK.fDownLoadPosCallBack(DownLoadPosCallback); XMSDK.fRealDataCallBack_V2 netdatacallbackv2 = new XMSDK.fRealDataCallBack_V2(NetCallBack_V2); m_nNetPlayHandle = XMSDK.H264_DVR_PlayBackByName_V2(m_lLoginID, ref FileInfo, downloadCallBack, netdatacallbackv2, this.Handle.ToInt32()); if (m_nNetPlayHandle <= 0) { MessageBox.Show("Playback fail"); return; } timerNetPlayBack.Start(); } else { if (m_bPauseNetPlay) { XMSDK.H264_DVR_PlayBackControl(m_nNetPlayHandle, (int)PlayBackAction.SDK_PLAY_BACK_CONTINUE, 0); //暂停恢复正常 m_bPauseNetPlay = !m_bPauseNetPlay; } XMSDK.H264_DVR_PlayBackControl(m_nNetPlayHandle, (int)PlayBackAction.SDK_PLAY_BACK_FAST, 0); //快慢放恢复正常 m_nFastTypeNet = 0; m_nSlowTypeNet = 0; } }
public int ConnectRealPlay(ref DEV_INFO pDev, int nChannel, int nStream = 1) { Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss - ") + TAG + ".ConnectRealPlay(" + pDev.szDevName + "," + nChannel.ToString() + ")", "DVR INFO"); if (m_iPlayhandle != -1) { if (0 != XMSDK.H264_DVR_StopRealPlay(m_iPlayhandle, (uint)panelVideo.Handle)) { //TODO: «десь необходимо доработать } if (m_bSound) { OnCloseSound(); } } H264_DVR_CLIENTINFO playstru = new H264_DVR_CLIENTINFO(); playstru.nChannel = nChannel; playstru.nStream = nStream; playstru.nMode = 0; playstru.hWnd = panelVideo.Handle; m_iPlayhandle = XMSDK.H264_DVR_RealPlay(pDev.lLoginID, ref playstru); if (m_iPlayhandle <= 0) { Int32 dwErr = XMSDK.H264_DVR_GetLastError(); } else { XMSDK.H264_DVR_MakeKeyFrame(pDev.lLoginID, nChannel, 0); realDataCallBack_V2 = new XMSDK.fRealDataCallBack_V2(DataCallBack_V2); XMSDK.H264_DVR_SetRealDataCallBack_V2(m_iPlayhandle, realDataCallBack_V2, Handle.ToInt32()); } m_lLogin = pDev.lLoginID; m_iChannel = nChannel; return(m_iPlayhandle); }
private void PlayByName() { m_nFastTypeNet = 0; m_nSlowTypeNet = 0; if(m_nNetPlayHandle == 0) { string csFileName = ""; int nSelected = listFile.SelectedItems.Count; if ( nSelected == 0 ) { MessageBox.Show("SelectFile"); return; } H264_DVR_FILE_DATA FileInfo = (H264_DVR_FILE_DATA)listFile.FocusedItem.Tag; FileInfo.hWnd = (uint)pictureBoxNetVideoWnd.Handle; XMSDK.fDownLoadPosCallBack downloadCallBack = new XMSDK.fDownLoadPosCallBack(DownLoadPosCallback); XMSDK.fRealDataCallBack_V2 netdatacallbackv2 = new XMSDK.fRealDataCallBack_V2(NetCallBack_V2); m_nNetPlayHandle = XMSDK.H264_DVR_PlayBackByName_V2(m_lLoginID, ref FileInfo, downloadCallBack, netdatacallbackv2, this.Handle.ToInt32()); if(m_nNetPlayHandle <= 0 ) { MessageBox.Show("Playback fail"); return; } timerNetPlayBack.Start(); } else { if (m_bPauseNetPlay) { XMSDK.H264_DVR_PlayBackControl(m_nNetPlayHandle, (int)PlayBackAction.SDK_PLAY_BACK_CONTINUE, 0 );//暂停恢复正常 m_bPauseNetPlay = !m_bPauseNetPlay; } XMSDK.H264_DVR_PlayBackControl(m_nNetPlayHandle, (int)PlayBackAction.SDK_PLAY_BACK_FAST, 0); //快慢放恢复正常 m_nFastTypeNet = 0; m_nSlowTypeNet = 0; } }