Как закрыть или уничтожить объект PeerConnectionInterface? Он разбился, когда я пытался это сделать.
У меня есть объект, объявленный так:
rtc::scoped_refptr<webrtc::PeerConnectionInterface> _peerConnection;
Он работает нормально после того, как я создаю PeerConnectionInterface на заводе.
Однако, когда сессия закончена, и я пытаюсь вызвать _peerConnection-> Close (); Сбой программы.
И я также пытаюсь вызвать _peerConnection.release () -> Release (); Также разбился.
Я печатаю журналы в PeerConnection.cc, который взят из исходного кода WebRtc, и нахожу, что он здесь потерпел крах, который находится в функциях Close () и ~ PeerConnection ():
webrtc_session_desc_factory_.reset(); //PeerConnection.cc
Объявление
std::unique_ptr<WebRtcSessionDescriptionFactory> webrtc_session_desc_factory_;
Поэтому я продолжаю входить в WebRtcSessionDescriptionFactory.cc, функцию ~ WebRtcSessionDescriptionFactory (). Сбой в этой функции: FailPendingRequests ().
Введен в функцию FailPendingRequests ():
RTC_DCHECK(signaling_thread_->IsCurrent());
while (!create_session_description_requests_.empty()) {
const CreateSessionDescriptionRequest& request =
create_session_description_requests_.front();
//Crashed here in third or fourth loop
PostCreateSessionDescriptionFailed(request.observer,
((request.type == CreateSessionDescriptionRequest::kOffer) ?
"CreateOffer" : "CreateAnswer") + reason);
create_session_description_requests_.pop();
}
Буду очень благодарен за любое предложение!