BOOL CPlayerHik::Stop() { //RemoveDisplayCallback(m_nPort); PlayM4_Stop(m_nPort); PlayM4_CloseFile(m_nPort); return PlayM4_FreePort(m_nPort); }
void CSingleCamDlg::OnBnClickedBtnStopcam()//停止 { NET_DVR_StopRealPlay(lRealHandle1); NET_DVR_StopRealPlay(lRealHandle2); //释放播放库资源 PlayM4_Stop(nPort1); PlayM4_CloseStream(nPort1); PlayM4_FreePort(nPort1); PlayM4_Stop(nPort2); PlayM4_CloseStream(nPort2); PlayM4_FreePort(nPort2); GetDlgItem(IDC_BTN_Login)->EnableWindow(TRUE); //登录按钮失效 GetDlgItem(IDC_BTN_PlayCam)->EnableWindow(TRUE); //播放按钮 有效 GetDlgItem(IDC_BTN_StopCam)->EnableWindow(FALSE); //停止按钮 失效 GetDlgItem(IDC_BTN_SavePicture)->EnableWindow(FALSE); // 抓图按钮 失效 GetDlgItem(IDC_BTN_SavePicture2)->EnableWindow(FALSE); // 抓图按钮 失效 GetDlgItem(IDC_BTN_StopSave)->EnableWindow(FALSE); // 停止抓图按钮 失效 }
MainWindow::~MainWindow() { // 停止解码 PlayM4_Stop(lPort); //关闭流,回收源数据缓冲 PlayM4_CloseStream(lPort); //释放播放库端口号 PlayM4_FreePort(lPort); NET_DVR_StopRealPlay(lRealPlayHandle); //注销用户 NET_DVR_Logout(lUserID); //释放SDK资源 NET_DVR_Cleanup(); delete ui; }
void CHaikangSDK::StopPlay(int screenNo) { //关闭预览 NET_DVR_StopRealPlay(m_RealHandle[screenNo]); //注销用户 NET_DVR_Logout_V30(m_LoginHandle[screenNo]); PlayM4_Stop(m_lPort[screenNo]); PlayM4_CloseStream(m_lPort[screenNo]); PlayM4_FreePort(m_lPort[screenNo]); m_LoginHandle[screenNo] = -1; m_lPort[screenNo]=-1; #if OPEN_CARDETECT_CODE //停止识别 if(false == DlgMain->DlgScreen.m_videoInfo[screenNo].enableDetect) DlgMain->DlgScreen.CarDetect[screenNo].Stop(); #endif }
void CALLBACK g_RealDataCallBack_V30(LONG lRealHandle, DWORD dwDataType, BYTE *pBuffer,DWORD dwBufSize,void* dwUser) { CHaikangSDK *HaikangSDK = (CHaikangSDK *)dwUser; int screenNo = DlgMain->DlgScreen.m_video.m_haikang.GetHandleWindID(lRealHandle); LONG lPort = HaikangSDK->m_lPort[screenNo]; CWnd* pWnd=NULL; switch (dwDataType) { case NET_DVR_SYSHEAD: //系统头 if (PlayM4_GetPort(&lPort)) //获取播放库未使用的通道号 { DlgMain->DlgScreen.m_video.m_haikang.m_lPort[screenNo] = lPort; } //m_iPort = lPort; //第一次回调的是系统头,将获取的播放库port号赋值给全局port,下次回调数据时即使用此port号播放 if (dwBufSize > 0) { if (!PlayM4_SetStreamOpenMode(lPort, STREAME_REALTIME)) //设置实时流播放模式 { PlayM4_FreePort(lPort); break; } if (!PlayM4_OpenStream(lPort, pBuffer, dwBufSize, 1920*1080*3)) //打开流接口 { PlayM4_FreePort(lPort); break; } if (!PlayM4_SetDisplayCallBack(lPort, RemoteDisplayCBFun)) { PlayM4_CloseStream(lPort); PlayM4_FreePort(lPort); break; } if(DlgSetSystem.m_display_preview) { pWnd= DlgMain->DlgScreen.m_screenPannel.GetPage(screenNo); if (!pWnd) { PlayM4_CloseStream(lPort); PlayM4_FreePort(lPort); return; } if (!PlayM4_Play(lPort, pWnd->m_hWnd)) //播放开始 { PlayM4_CloseStream(lPort); PlayM4_FreePort(lPort); break; } } else { if (!PlayM4_Play(lPort,NULL)) //播放开始 { PlayM4_CloseStream(lPort); PlayM4_FreePort(lPort); break; } } } break; case NET_DVR_STREAMDATA: //码流数据 if (dwBufSize > 0 && lPort != -1) { if (!PlayM4_InputData(lPort, pBuffer, dwBufSize)) { break; } } break; } }