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