in AliRTC2.5/Windows/MFC Demo/RtcSample/RTCSampleMainInterface.cpp [922:962]
void CRTCSampleMainInterface::ShowSubscribe(const String uid, int iReflectIndex, AliEngineVideoTrack vt)
{
if (0 == m_mapRemoteInfo.size()) return;
if (0 == m_mapRemoteInfo.count(uid.c_str())) return;
Dictionary dict;
if (0 != m_pEngine->GetUserInfo(uid.c_str(), dict)) return;
m_vecThrowingScreenInfo[iReflectIndex].s_strRemoteUserUid = uid;
m_vecThrowingScreenInfo[iReflectIndex].vt = vt;
if (AliEngineVideoTrackCamera == vt)
{
m_mapRemoteInfo[uid.c_str()].s_iReflectID = m_vecThrowingScreenInfo[iReflectIndex].s_iReflectID;
m_mapRemoteInfo[uid.c_str()].s_iReflectTips = m_vecThrowingScreenInfo[iReflectIndex].s_iReflectTips;
m_mapRemoteInfo[uid.c_str()].s_bIsReflect = true;
m_mapRemoteInfo[uid.c_str()].s_iReflectIndex = iReflectIndex;
if (true == m_mapRemoteInfo[uid.c_str()].s_bHsaCameraFlow && true == m_mapRemoteInfo[uid.c_str()].s_bIsRecvCamera)
{
AliEngineVideoCanvas canvas;
canvas.displayView = GetDlgItem(m_vecThrowingScreenInfo[m_mapRemoteInfo[uid.c_str()].s_iReflectIndex].s_iReflectID)->m_hWnd;
m_pEngine->SetRemoteViewConfig(canvas, uid.c_str(), AliEngineVideoTrackCamera);
}
}
else if (AliEngineVideoTrackScreen == vt)
{
if (true == m_mapRemoteInfo[uid.c_str()].s_bHsaScreenFlow && true == m_mapRemoteInfo[uid.c_str()].s_bIsRecvScreen)
{
AliEngineVideoCanvas canvas;
canvas.displayView = GetDlgItem(m_vecThrowingScreenInfo[iReflectIndex].s_iReflectID)->m_hWnd;
m_pEngine->SetRemoteViewConfig(canvas, uid.c_str(), AliEngineVideoTrackScreen);
}
}
CString strReflectTips;
strReflectTips.Format("远端用户:%s", m_mapRemoteInfo[uid.c_str()].s_strRemoteUserName.c_str());
GetDlgItem(m_vecThrowingScreenInfo[iReflectIndex].s_iReflectTips)->SetWindowTextA(strReflectTips);
SetTimer(TIMER_RETRIEVAL_CHANNEL, 500, NULL);
}