void CRTCSampleMainInterface::ReplaceSubscribeFlow()

in AliRTC2.5/Windows/MFC Demo/RtcSample/RTCSampleMainInterface.cpp [1388:1424]


void CRTCSampleMainInterface::ReplaceSubscribeFlow(const String strOldUid, AliEngineVideoTrack oldvt, const String strNewUid, AliEngineVideoTrack newvt, int index)
{
	m_bMoving = false;
	if (!strOldUid.isEmpty())
	{
		AliEngineVideoCanvas canvas;
		canvas.displayView = NULL;
		if (AliEngineVideoTrackCamera == oldvt)
		{
			m_pEngine->SetRemoteViewConfig(canvas, strOldUid.c_str(), AliEngineVideoTrackCamera);
			m_pEngine->SubscribeRemoteVideoStream(strOldUid.c_str(), AliEngineVideoTrackCamera, false);
		}
		else
		{
			m_pEngine->SetRemoteViewConfig(canvas, strOldUid.c_str(), AliEngineVideoTrackScreen);
			m_pEngine->SubscribeRemoteVideoStream(strOldUid.c_str(), AliEngineVideoTrackScreen, false);
		}	
	}

	m_iChangeChannelIndex = index;

	if (AliEngineVideoTrackCamera == newvt)
	{
		m_pEngine->SubscribeRemoteVideoStream(strNewUid.c_str(), AliEngineVideoTrackCamera, true);
		ShowSubscribe(strNewUid, m_iChangeChannelIndex, AliEngineVideoTrackCamera);
	}
	else if (true == m_mapRemoteInfo[strNewUid.c_str()].s_bHsaScreenFlow && true == m_mapRemoteInfo[strNewUid.c_str()].s_bIsRecvScreen)
	{
		m_pEngine->SubscribeRemoteVideoStream(strNewUid.c_str(), AliEngineVideoTrackScreen, true);
		ShowSubscribe(strNewUid, m_iChangeChannelIndex, AliEngineVideoTrackScreen);
	}
	else
	{
		GetDlgItem(m_vecThrowingScreenInfo[m_iChangeChannelIndex].s_iReflectID)->SetWindowTextA("无信号");
		return;
	}
}