Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

RTCIceTransport: gatheringstatechange-Ereignis

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2024 browserübergreifend verfügbar.

Ein gatheringstatechange-Ereignis wird an einen RTCIceTransport gesendet, wenn sich dessen Status beim Sammeln von ICE-Kandidaten ändert.

Der Sammelstatus, dessen aktueller Wert in der Eigenschaft gatheringState des Transportobjekts zu finden ist, gibt an, ob der ICE-Agent begonnen hat, Kandidaten für diesen Transport zu sammeln, und gegebenenfalls, ob er damit fertig ist.

Dieses Ereignis kann nicht abgebrochen werden und steigt nicht im DOM-Baum auf.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("gatheringstatechange", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft der Schnittstelle zuweisen:

js
ongatheringstatechange = (event) => { }

Ereignistyp

Ein generisches Event.

Beispiele

Dieses Beispiel erstellt einen Handler für gatheringstatechange-Ereignisse für jeden RTCRtpSender, der mit einer bestimmten RTCPeerConnection verknüpft ist. Hier wird die Methode addEventListener() aufgerufen, um einen Listener für gatheringstatechange-Ereignisse hinzuzufügen:

js
pc.getSenders().forEach((sender) => {
  sender.transport.iceTransport.addEventListener(
    "gatheringstatechange",
    (ev) => {
      let transport = ev.target;

      if (transport.gatheringState === "complete") {
        /* this transport has finished gathering candidates,
        but others may still be working on it */
      }
    },
  );
});

Ebenso können Sie die Event-Handler-Eigenschaft ongatheringstatechange verwenden. Beachten Sie jedoch, dass dadurch gegebenenfalls andere über ongatheringstatechange hinzugefügte Event-Listener ersetzt werden:

js
pc.getSenders().forEach((sender) => {
  sender.transport.iceTransport.ongatheringstatechange = (ev) => {
    let transport = ev.target;

    if (transport.gatheringState === "complete") {
      /* this transport has finished gathering candidates,
         but others may still be working on it */
    }
  };
});

Spezifikationen

Spezifikation
WebRTC: Real-Time Communication in Browsers
# event-icetransport-gatheringstatechange
WebRTC: Real-Time Communication in Browsers
# dom-rtcicetransport-ongatheringstatechange

Browser-Kompatibilität

Siehe auch

Verwandte RTCIceTransport-Ereignisse

Verwandte RTCPeerConnection-Ereignisse