RTCIceTransport: gatheringstatechange 事件

Baseline 2024
新推出

自 ⁨2024 年 4 月⁩ 起,此功能可在最新的裝置和瀏覽器版本中執行。此功能可能不適用於較舊的裝置或瀏覽器。

gatheringstatechange 事件傳送給 RTCIceTransport 時,它的 ICE 候選收集狀態發生變化。

收集狀態(其實際狀態可在傳輸物件的 gatheringState 屬性中找到)表示 ICE 代理是否已開始在此傳輸上收集候選,如果是,是否已完成收集。

此事件不可取消,也不會冒泡。

語法

在諸如 addEventListener() 之類的方法中使用事件名稱,或設定事件處理程式屬性。

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

ongatheringstatechange = (event) => { }

事件型別

一個通用的 Event

示例

此示例在與給定 RTCPeerConnection 關聯的每個 RTCRtpSender 上為 gatheringstatechange 事件建立了一個處理程式。在這裡,呼叫 addEventListener() 方法來新增 gatheringstatechange 事件的監聽器。

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 */
      }
    },
  );
});

同樣,您也可以使用 ongatheringstatechange 事件處理程式屬性。

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 */
    }
  };
});

規範

規範
WebRTC:瀏覽器中的即時通訊
# event-icetransport-gatheringstatechange
WebRTC:瀏覽器中的即時通訊
# dom-rtcicetransport-ongatheringstatechange

瀏覽器相容性

另見