Javascript WebRTC/RTPeerConnection:无法设置本地应答sdp:在错误状态下调用:状态\u SENTACCEPT

Javascript WebRTC/RTPeerConnection:无法设置本地应答sdp:在错误状态下调用:状态\u SENTACCEPT,javascript,webrtc,Javascript,Webrtc,我正在实现一个网络摄像头聊天。我收到此错误无法设置本地应答sdp:在错误状态下调用:state\u sentapt 获取它的用户有一个rtpeerconnection打开,该连接在执行此代码之前等待另一个用户的SDP提供,错误发生在: function receiveOffer(offer) { offer = new RTCSessionDescription(JSON.parse(offer)); remotePc; // defined somewhere else

我正在实现一个网络摄像头聊天。我收到此错误
无法设置本地应答sdp:在错误状态下调用:state\u sentapt

获取它的用户有一个
rtpeerconnection
打开,该连接在执行此代码之前等待另一个用户的SDP提供,错误发生在:

function receiveOffer(offer)
{
    offer = new RTCSessionDescription(JSON.parse(offer));
    remotePc; // defined somewhere else

    remotePc.setRemoteDescription(new RTCSessionDescription(offer), function() 
    {
        remotePc.createAnswer(function(answer) 
        {
            remotePc.setLocalDescription(new RTCSessionDescription(answer), function() 
            {
                // send answer
            },error); 
        },error);
    },error);
}

引发错误的行是
setLocalDescription
。一般来说,有人知道这可能是什么原因吗?

remotePc是否也在代码中的其他地方提供报价?它不提供报价,但显然有时它会在收到报价之前获得远程对等方的ice候选人。我试图找出这是否是一个问题。是的,在设置remoteSDP之前,您不能设置任何ice候选项。如果你尝试,就会有问题。我将完全跳过“涓涓细流”,在所有候选人确定之前不会发送您的报价sdp。谢谢你的评论。让我绕着它转一圈。:)到目前为止,通过在PeerConnection的构造函数中传递ice服务器,我自动获得了我的ice候选对象。我是否正确地认为,
updateIce
也能让我获得ice候选人?我试试看。