RTCPeerConnection: icegatheringstatechange-Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2017 browserübergreifend verfügbar.
Das icegatheringstatechange-Ereignis wird an den Event-Handler onicegatheringstatechange einer RTCPeerConnection gesendet, wenn sich der Zustand der Erfassung von ICE-Kandidaten ändert. Das bedeutet, dass sich der Wert der Eigenschaft iceGatheringState der Verbindung geändert hat.
Wenn ICE mit der Erfassung von Verbindungskandidaten beginnt, ändert sich der Wert von new zu gathering. Dies zeigt an, dass die Erfassung möglicher Konfigurationen für die Verbindung begonnen hat. Wenn sich der Wert zu complete ändert, haben alle Transports der RTCPeerConnection die Erfassung von ICE-Kandidaten abgeschlossen.
Hinweis:
Sie können feststellen, dass die Erfassung von ICE-Kandidaten abgeschlossen ist, indem Sie auf icegatheringstatechange-Ereignisse achten und prüfen, ob der Wert von iceGatheringState zu complete wechselt. Alternativ können Sie im Handler für das icecandidate-Ereignis prüfen, ob dessen Eigenschaft candidate null ist. Auch dies zeigt an, dass die Erfassung von Kandidaten abgeschlossen ist.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht durch die DOM-Hierarchie weitergeleitet.
Syntax
Verwenden Sie den Ereignisnamen in addEventListener():
addEventListener("icegatheringstatechange", (event) => { })
Alternativ können Sie der Event-Handler-Eigenschaft der Schnittstelle einen Wert zuweisen:
onicegatheringstatechange = (event) => { }
Ereignistyp
Ein generisches Event.
Beispiele
Dieses Beispiel erstellt mithilfe der Eigenschaft onicegatheringstatechange einen Handler für icegatheringstatechange-Ereignisse. Beachten Sie jedoch, dass dadurch gegebenenfalls andere über onicegatheringstatechange hinzugefügte Event-Listener ersetzt werden.
pc.onicegatheringstatechange = (ev) => {
let connection = ev.target;
switch (connection.iceGatheringState) {
case "gathering":
/* collection of candidates has begun */
break;
case "complete":
/* collection of candidates is finished */
break;
}
};
Ebenso können Sie mit addEventListener() einen Listener für icegatheringstatechange-Ereignisse hinzufügen:
pc.addEventListener("icegatheringstatechange", (ev) => {
let connection = ev.target;
switch (connection.iceGatheringState) {
case "gathering":
// collection of candidates has begun
break;
case "complete":
// collection of candidates is finished
break;
}
});
Spezifikationen
| Spezifikation |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcpeerconnection-onicegatheringstatechange> |