Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用createAnswer不会';不要改变信号状态`_Javascript_Webrtc_Rtcpeerconnection - Fatal编程技术网

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。看见