Javascript 调用createAnswer不会';不要改变信号状态`
调用Javascript 调用createAnswer不会';不要改变信号状态`,javascript,webrtc,rtcpeerconnection,Javascript,Webrtc,Rtcpeerconnection,调用createAnswer不会改变signalingState,它仍然处于具有远程报价。可能的原因是什么 offerSdp = { "sdp": offerSdp, "type": "offer" }; pc.setRemoteDescription(new RTCSessionDescription(offerSdp)).then(() => { pc.createAnswer().then(answer => { //s
createAnswer
不会改变signalingState
,它仍然处于具有远程报价
。可能的原因是什么
offerSdp = { "sdp": offerSdp, "type": "offer" };
pc.setRemoteDescription(new RTCSessionDescription(offerSdp)).then(() => {
pc.createAnswer().then(answer => {
//state still have-remote-offer
pc.setLocalDescription(new RTCSessionDescription(answer)).then(() => {
deferred.resolve(answer.sdp)
});
});
});
createOffer
/createAnswer
只需分别创建一个offer/answer(又名“description”)并将其返回给您,以便传递。他们不会影响我们
setLocalDescription
和setRemoteDescription
执行以下操作:
如果您在这些方法解析后检查状态,那么您应该会看到预期的状态
请注意,如图所示,仅允许某些状态转换。例如,
setLocalDecription
只能在have remote offer
状态下使用应答调用。使用报价调用它将出错。但我在pc.setLocalDescription
时遇到此错误:未能在“RTPeerConnection”上执行“setLocalDescription”:未能设置本地报价sdp:在错误状态下调用:kHaveRemoteOffer@Shashidhara请看图表setLocalDecription
只能在应答处于该状态时调用。在您的问题中,您提到了createOffer
,但在您的示例中,您有createAnswer
,它是哪个?请改进您的问题,以包括您所问的内容,以便我们可以满意地回答,或提出新问题。对不起,我的错误。这是我的答案。问题中的代码是我的应用程序中使用的实际代码。正如我所检查的。。国家是正当的。我还是在评论中看到了前面提到的错误。@Shashidhara您是否在Chrome上使用了OnGetiationNeeded
?如果是这样,试试Firefox。你可能遇到了一个Chrome bug。看见