void CRTCSampleMainInterface::UpdateSubscribe()

in AliRTC2.5/Windows/MFC Demo/RtcSample/RTCSampleMainInterface.cpp [887:919]


void CRTCSampleMainInterface::UpdateSubscribe(const String uid, AliEngineAudioTrack audioTrack, AliEngineVideoTrack videoTrack)
{
	if (0 == m_mapRemoteInfo.count(uid.c_str())) return;
	Dictionary dict;
	if (0 != m_pEngine->GetUserInfo(uid.c_str(), dict))  return;

	m_mapRemoteInfo[uid.c_str()].s_strRemoteUserUid = uid;	

	if (AliEngineAudioTrackMic == audioTrack && true == m_mapRemoteInfo[uid.c_str()].s_bIsRecvAudio)
		m_pEngine->SubscribeRemoteAudioStream(uid.c_str(), true);
	else
		m_pEngine->SubscribeRemoteAudioStream(uid.c_str(), false);

	if ((AliEngineVideoTrackScreen == videoTrack || AliEngineVideoTrackBoth == videoTrack) && true == m_mapRemoteInfo[uid.c_str()].s_bIsRecvScreen)
	{
		m_mapRemoteInfo[uid.c_str()].s_bHsaScreenFlow = true;

		if (AliEngineVideoTrackBoth == videoTrack)
			m_mapRemoteInfo[uid.c_str()].s_bHsaCameraFlow = true;
	}
	else if (AliEngineVideoTrackCamera == videoTrack && true == m_mapRemoteInfo[uid.c_str()].s_bIsRecvCamera)
	{
		m_mapRemoteInfo[uid.c_str()].s_bHsaCameraFlow = true;
		m_mapRemoteInfo[uid.c_str()].s_bHsaScreenFlow = false;
	}
	else
	{
		m_mapRemoteInfo[uid.c_str()].s_bHsaScreenFlow = false;
		m_mapRemoteInfo[uid.c_str()].s_bHsaCameraFlow = false;
	}

	MonitorSortingErrorReset();
}