1

调用createAnswer没有改变signalingState,它仍然在have-remote-offer。这可能是什么原因。

    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)
            });
        });
    });
4

1 回答 1

1

createOffer/createAnswer只需分别创建一个提议/答案(也称为“描述”)并将它们返回给您,以传递。它们不影响信号状态

setLocalDescriptionsetRemoteDescription做:

在此处输入图像描述

如果您在这些方法解决后检查状态,那么您应该会看到您期望的状态。

请注意,如图所示,仅允许某些状态转换。例如,setLocalDecription只能在状态中使用答案来调用。have-remote-offer用报价调用它会出错。

于 2019-02-02T15:47:47.527 回答