RTCIceTransport: gatheringstatechange 事件

RTCIceTransportICE 候选者收集状态发生变化时,会向其发送一个 gatheringstatechange 事件。

收集状态,其实际状态可以在传输对象的 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 */
      }
    },
    false,
  );
});

同样,您可以使用 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

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅