Exemple #1
0
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); // 停止抓图按钮 失效
}
Exemple #3
0
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;
}
Exemple #4
0
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

}
Exemple #5
0
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;
	}
}