Вызов 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
государство. Вызов с предложением будет ошибкой.