WebRTC:为什么"在SetRemoteDescription"之前无法调用CreateAnswer?

时间:2016-04-26 17:27:31

标签: webrtc

浏览器:Chrome

我正在尝试调试一个webRTC应用程序,该应用程序可以在四个方面中的三个方面正常工作!我无法从接收器到呼叫者获取视频。我可以从呼叫者到接收器获取视频和音频,从接收器到呼叫者可以获得音频。问题是接收器不会发射视频(sdpMid ="视频")ICE候选者。在拼命尝试解决这个问题的同时,我尝试在设置pc.remoteDescription之前使用pc.CreateAnswer,并在标题中引用了错误。

我的问题是了解背后的原因。答案SDP将是基于getUserMedia设置/约束的SDP。那么,为什么我们必须等待设置remoteDescription。我认为createAnswer会开始解雇ICE候选人,这可以提前完成而无需等待设置remoteDescription。事实并非如此。为什么呢?

1 个答案:

答案 0 :(得分:2)

优惠和答案不是独立的,它们是固有的非对称交换的一部分。

答案是对特定要约的直接回应(因此称为“回答”)。因此,对等方在收到要约之前无法回答,您可以使用setRemoteDescription设置。

要约包含特定限制或信封(如m行),答案必须遵守/回答/留在其中。另一种说法是答案是要约的迭代。

例如,使用优惠选项offerToReceiveVideo: false创建的优惠只能通过recvonly来回答视频(意味着只接收来自提交者和回答者的视频),而不是sendrecv