📄 netsdkdemodlg.cpp
字号:
}
//停止播放当前播放画面
BOOL CNetSDKDemoDlg::PlayCtrl_Stop()
{
int nRet = PlayStop(m_curScreen);
if (nRet < 0)
{
return FALSE;
}
else
{
// m_playWnd[curScreen].ShowWindow(SW_HIDE);
// m_playWnd[curScreen].ShowWindow(SW_NORMAL);
}
return TRUE;
}
//快放
BOOL CNetSDKDemoDlg::PlayCtrl_Fast()
{/*
for (int i = 0; i<16; i++)
{
SplitInfoNode siNode;
memset(&siNode, 0, sizeof(siNode));
BOOL ret = GetSplitInfo_Main(i, &siNode);
if (!ret)
{
MessageBox("error while getting split info");
return FALSE;
}
if(siNode.Type == SPLIT_TYPE_NETPLAY)
{
SplitNetPlayParam *pParam = (SplitNetPlayParam *)siNode.Param;
if(pParam->iStatus == STATUS_PAUSE)
{
goto e_exit;
}
if(pParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto e_exit;
}
pParam->iStatus = STATUS_STOP;
}
if (m_curSoundSplit == i)
{
if (FALSE == CLIENT_CloseSound())
{
LastError();
MessageBox(MSG_CLOSESOUNDFAILED);
goto e_exit;
}
m_advanceBtnPannel.SetCheckSound(0);
m_curSoundSplit = -1;
}
ret = CLIENT_FastPlayBack(siNode.iHandle);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
}
pParam->iStatus = STATUS_PLAY;
}
else if (siNode.Type == SPLIT_TYPE_PBBYTIME)
{
SplitPBByTimeParam *pbParam = (SplitPBByTimeParam *)siNode.Param;
if(pbParam->iStatus == STATUS_PAUSE)
{
goto e_exit;
}
if(pbParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
}
else
{
pbParam->iStatus = STATUS_STOP;
}
}
if (m_curSoundSplit == i)
{
if (FALSE == CLIENT_CloseSound())
{
LastError();
MessageBox(MSG_CLOSESOUNDFAILED);
goto e_exit;
}
m_advanceBtnPannel.SetCheckSound(0);
m_curSoundSplit = -1;
}
ret = CLIENT_FastPlayBack(siNode.iHandle);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
goto e_exit;
}
pbParam->iStatus = STATUS_PLAY;
}
else
{
// MessageBox(MSG_DEMODLG_NOTPLAYING);
// goto e_exit;
}
}
*/
SplitInfoNode siNode;
memset(&siNode, 0, sizeof(siNode));
BOOL ret = GetSplitInfo_Main(m_curScreen, &siNode);
if (!ret)
{
MessageBox("error while getting split info");
return FALSE;
}
if(siNode.Type == SPLIT_TYPE_NETPLAY)
{
SplitNetPlayParam *pParam = (SplitNetPlayParam *)siNode.Param;
if(pParam->iStatus == STATUS_PAUSE)
{
goto e_exit;
}
if(pParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto e_exit;
}
pParam->iStatus = STATUS_STOP;
}
if (m_curSoundSplit == m_curScreen)
{
if (FALSE == CLIENT_CloseSound())
{
LastError();
MessageBox(MSG_CLOSESOUNDFAILED);
goto e_exit;
}
m_advanceBtnPannel.SetCheckSound(0);
m_curSoundSplit = -1;
}
ret = CLIENT_FastPlayBack(siNode.iHandle);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
}
pParam->iStatus = STATUS_PLAY;
}
else if (siNode.Type == SPLIT_TYPE_PBBYTIME)
{
SplitPBByTimeParam *pbParam = (SplitPBByTimeParam *)siNode.Param;
if(pbParam->iStatus == STATUS_PAUSE)
{
goto e_exit;
}
if(pbParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
}
else
{
pbParam->iStatus = STATUS_STOP;
}
}
if (m_curSoundSplit == m_curScreen)
{
if (FALSE == CLIENT_CloseSound())
{
LastError();
MessageBox(MSG_CLOSESOUNDFAILED);
goto e_exit;
}
m_advanceBtnPannel.SetCheckSound(0);
m_curSoundSplit = -1;
}
ret = CLIENT_FastPlayBack(siNode.iHandle);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
goto e_exit;
}
pbParam->iStatus = STATUS_PLAY;
}
else
{
MessageBox(MSG_DEMODLG_NOTPLAYING);
goto e_exit;
}
return TRUE;
e_exit:
return FALSE;
}
//慢放
BOOL CNetSDKDemoDlg::PlayCtrl_Slow()
{
SplitInfoNode siNode;
memset(&siNode, 0, sizeof(siNode));
BOOL ret = GetSplitInfo_Main(m_curScreen, &siNode);
if (!ret)
{
MessageBox("error while getting split info");
return FALSE;
}
if(siNode.Type == SPLIT_TYPE_NETPLAY)
{
SplitNetPlayParam *pParam = (SplitNetPlayParam *)siNode.Param;
if(pParam->iStatus == STATUS_PAUSE)
{
goto e_exit;
}
if(pParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto e_exit;
}
pParam->iStatus = STATUS_STOP;
}
ret = CLIENT_SlowPlayBack(siNode.iHandle);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
goto e_exit;
}
pParam->iStatus = STATUS_PLAY;
}
else if (siNode.Type == SPLIT_TYPE_PBBYTIME)
{
SplitPBByTimeParam *pbParam = (SplitPBByTimeParam *)siNode.Param;
if(pbParam->iStatus == STATUS_PAUSE)
{
goto e_exit;
}
if(pbParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto e_exit;
}
pbParam->iStatus = STATUS_STOP;
}
ret = CLIENT_SlowPlayBack(siNode.iHandle);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
goto e_exit;
}
pbParam->iStatus = STATUS_PLAY;
}
else
{
MessageBox(MSG_DEMODLG_NOTPLAYING);
goto e_exit;
}
return TRUE;
e_exit:
return FALSE;
}
//单帧播放
BOOL CNetSDKDemoDlg::PlayCtrl_Step()
{
SplitInfoNode siNode;
memset(&siNode, 0, sizeof(siNode));
BOOL ret = GetSplitInfo_Main(m_curScreen, &siNode);
if (!ret)
{
MessageBox("error while getting split info");
return FALSE;
}
if(siNode.Type == SPLIT_TYPE_NETPLAY)
{
SplitNetPlayParam *pParam = (SplitNetPlayParam *)siNode.Param;
if(pParam->iStatus == STATUS_PAUSE)
{
goto e_exit;
}
ret = CLIENT_StepPlayBack(siNode.iHandle, FALSE);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
goto e_exit;
}
pParam->iStatus = STATUS_STEP;
}
else if (siNode.Type == SPLIT_TYPE_PBBYTIME)
{
SplitPBByTimeParam *pbParam = (SplitPBByTimeParam *)siNode.Param;
if(pbParam->iStatus == STATUS_PAUSE)
{
MessageBox("paused");
goto e_exit;
}
ret = CLIENT_StepPlayBack(siNode.iHandle, FALSE);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
goto e_exit;
}
pbParam->iStatus = STATUS_STEP;
}
else
{
MessageBox(MSG_DEMODLG_NOTPLAYING);
goto e_exit;
}
return TRUE;
e_exit:
return FALSE;
}
BOOL CNetSDKDemoDlg::PlayCtrl_Frame(int frame)
{
// KillTimer(TIMER_KBPS);
if(!UpdateData(true))
{
return FALSE;
}
if ((frame <= 0) || (frame > 120))
{
MessageBox(MSG_SCHRECORD_ILLEGALFRAME);
return FALSE;
}
SplitInfoNode siNode;
memset(&siNode, 0, sizeof(siNode));
BOOL ret = GetSplitInfo_Main(m_curScreen, &siNode);
if (!ret)
{
MessageBox("error while getting split info");
return FALSE;
}
ret = FALSE;
if(siNode.Type == SPLIT_TYPE_NETPLAY)
{
SplitNetPlayParam *pParam = (SplitNetPlayParam *)siNode.Param;
if(pParam->iStatus == STATUS_PAUSE)
{
goto out;
}
if(pParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto out;
}
pParam->iStatus = STATUS_STOP;
}
if (m_curSoundSplit == m_curScreen)
{
if (FALSE == CLIENT_CloseSound())
{
LastError();
MessageBox(MSG_CLOSESOUNDFAILED);
goto out;
}
m_advanceBtnPannel.SetCheckSound(0);
m_curSoundSplit = -1;
}
ret = CLIENT_SetFramePlayBack(siNode.iHandle, frame);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
goto out;
}
}
else if(siNode.Type == SPLIT_TYPE_PBBYTIME)
{
SplitPBByTimeParam *pbParam = (SplitPBByTimeParam *)siNode.Param;
if(pbParam->iStatus == STATUS_PAUSE)
{
goto out;
}
if(pbParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto out;
}
pbParam->iStatus = STATUS_STOP;
}
if (m_curSoundSplit == m_curScreen)
{
if (FALSE == CLIENT_CloseSound())
{
LastError();
MessageBox(MSG_CLOSESOUNDFAILED);
goto out;
}
m_advanceBtnPannel.SetCheckSound(0);
m_curSoundSplit = -1;
}
ret = CLIENT_SetFramePlayBack(siNode.iHandle, frame);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
goto out;
}
}
else
{
MessageBox(MSG_DEMODLG_NOTPLAYING);
goto out;
}
out:
// SetTimer(TIMER_KBPS, 1111,NULL);
return ret;
}
//播放/暂停切换
BOOL CNetSDKDemoDlg::PlayCtrl_Play()
{
BOOL isPause = false;
SplitInfoNode siNode;
memset(&siNode, 0, sizeof(siNode));
BOOL ret = GetSplitInfo_Main(m_curScreen, &siNode);
if (!ret)
{
MessageBox("error while getting split info");
return FALSE;
}
ret = FALSE;
if(siNode.Type == SPLIT_TYPE_NETPLAY)
{
SplitNetPlayParam *pParam = (SplitNetPlayParam *)siNode.Param;
if(pParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto out;
}
pParam->iStatus = STATUS_STOP;
}
if(pParam->iStatus != STATUS_PAUSE)
{
isPause = true;
}
ret = CLIENT_PausePlayBack(siNode.iHandle, isPause);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
}
else
{
if(pParam->iStatus == STATUS_PAUSE)
{
pParam->iStatus = STATUS_PLAY;
}
else
{
pParam->iStatus = STATUS_PAUSE;
}
}
}
else if(siNode.Type == SPLIT_TYPE_PBBYTIME)
{
SplitPBByTimeParam *pbParam = (SplitPBByTimeParam *)siNode.Param;
if(pbParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto out;
}
pbParam->iStatus = STATUS_STOP;
}
if(pbParam->iStatus != STATUS_PAUSE)
{
isPause = true;
}
ret = CLIENT_PausePlayBack(siNode.iHandle, isPause);
if(!ret)
{
LastError();
MessageBox(MSG_DEMODLG_PLAYCTRLFAILED);
}
else
{
if(pbParam->iStatus == STATUS_PAUSE)
{
pbParam->iStatus = STATUS_PLAY;
}
else
{
pbParam->iStatus = STATUS_PAUSE;
}
}
}
else
{
MessageBox(MSG_DEMODLG_NOTPLAYING);
}
out:
return ret;
}
int CNetSDKDemoDlg::PlayStop(int iScreen, BOOL bDis)
{
SplitInfoNode siNode;
memset(&siNode, 0, sizeof(siNode));
BOOL ret = GetSplitInfo_Main(iScreen, &siNode);
if (!ret)
{
MessageBox("error while getting split info");
goto e_clear;
}
CPlayWnd *plWnd;
if(siNode.Type == SPLIT_TYPE_NETPLAY)
{
SplitNetPlayParam *pParam = (SplitNetPlayParam *)siNode.Param;
//如果处于单帧播放状态,需先恢复
if(pParam->iStatus == STATUS_STEP)
{
ret = CLIENT_StepPlayBack(siNode.iHandle, TRUE);
if (!ret)
{
LastError();
goto e_clear;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -