RTCPSender.sending_ 默認爲 false,即當前爲接收端:
RTCPSender::RTCPSender(
bool audio,
Clock* clock,
ReceiveStatistics* receive_statistics,
RtcpPacketTypeCounterObserver* packet_type_counter_observer,
RtcEventLog* event_log,
Transport* outgoing_transport)
:sending_(false),
...
...
...
{
...
...
...
}
當調用 AudioSendStream::Start() 時,sending_ 會變成 true,表示當前爲發送端:
void AudioSendStream::Start()
{
RTC_DCHECK(thread_checker_.CalledOnValidThread());
ScopedVoEInterface<VoEBase> base(voice_engine());
//開始發送
int error = base->StartSend(config_.voe_channel_id);
if (error != 0)
{
LOG(LS_ERROR) << "AudioSendStream::Start failed with error: " << error;
}
}
當調用 AudioSendStream::Stop()、亦或者刪除 / 銷燬 Channel,sending_ 會變成 false,表示當前爲接收端:
void AudioSendStream::Stop()
{
RTC_DCHECK(thread_checker_.CalledOnValidThread());
ScopedVoEInterface<VoEBase> base(voice_engine());
// 停止發送
int error = base->StopSend(config_.voe_channel_id);
if (error != 0)
{
LOG(LS_ERROR) << "AudioSendStream::Stop failed with error: " << error;
}
}