WebRTC研究:sending_

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;
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章