Вызов createAnswer не меняет `signallingState`

Призвание 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)
            });
        });
    });

1 ответ

createOffer / createAnswer Просто создайте предложение / ответ соответственно (он же "описание") и верните их вам, чтобы обойти. Они не влияют на signalingState.

setLocalDescription а также setRemoteDescription делать:

Если вы проверите состояние после разрешения этих методов, вы должны увидеть ожидаемое состояние.

Обратите внимание, что, как показывает диаграмма, разрешены только определенные переходы состояний. Например, setLocalDecription может быть вызван только с ответом в have-remote-offer государство. Вызов с предложением будет ошибкой.

Другие вопросы по тегам