void CRTCSampleMainInterface::UpdateVideoView()

in AliRTC2.5/Windows/MFC Demo/RtcSample/RTCSampleMainInterface.cpp [1212:1267]


void CRTCSampleMainInterface::UpdateVideoView(String uid, UINT ViewID, UINT ControlID)
{
	if (m_nConsoleOccupancy == ViewID)
	{
		return;
	}

	//已存在切换的,先切换回去
	AliEngineVideoCanvas canvas;
	if (m_nConsoleOccupancy != ControlID)
	{
		if (m_sRemoteUserCfg.s_strSetOccupyUid.isEmpty() || m_sRemoteUserCfg.s_strSetOccupyUid == "")
		{
			PreviewLocally(m_nConsoleOccupancy);
		}
		else
		{
			//从大屏切回小屏,改为拉取小流
			m_pEngine->SetRemoteVideoStreamType(m_sRemoteUserCfg.s_strSetOccupyUid.c_str(), AliEngineVideoStreamTypeLow);

			canvas.displayView = GetDlgItem(m_nConsoleOccupancy)->m_hWnd;
			m_pEngine->SetRemoteViewConfig(canvas, m_sRemoteUserCfg.s_strSetOccupyUid.c_str(), AliEngineVideoTrackCamera);
		}

		if (ViewID == IDC_STATIC_MAINROOM && uid.isEmpty())
		{
			m_nConsoleOccupancy = ViewID;
			m_sRemoteUserCfg.s_strSetOccupyUid = uid;
			return;//主视图切回原视图,无需再显示主视图
		}
	}

	m_nConsoleOccupancy = ViewID;
	m_sRemoteUserCfg.s_strSetOccupyUid = uid;
	//切换大小图
	if (uid.isEmpty() || uid == "")
	{
		PreviewLocally(ControlID);
	}
	else
	{
		//从小屏切换大屏屏,改为拉取大流
		m_pEngine->SetRemoteVideoStreamType(m_sRemoteUserCfg.s_strSetOccupyUid.c_str(), AliEngineVideoStreamTypeHigh);
		if (IDC_STATIC_MAINROOM == ControlID)
		{
			canvas.displayView = m_ctlMainRoom.GetSafeHwnd();
		}
		else
		{
			canvas.displayView = GetDlgItem(ControlID)->m_hWnd;
		}
		m_pEngine->SetRemoteViewConfig(canvas, uid.c_str(), AliEngineVideoTrackCamera);
	}

	GetDlgItem(ViewID)->Invalidate();
}