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();
}