RTCIceTransport: statechange 事件

Baseline 2024
新推出

自 ⁨2024 年 4 月⁩ 起,此功能可在最新的设备和浏览器版本中运行。此功能可能不适用于较旧的设备或浏览器。

RTCIceTransport 状态改变时,会发生 statechange 事件。可以通过 state 属性来确定在成功连接两个对等端进行 WebRTC 通信之前,检查、验证和选择有效候选对的过程进行了多远。

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

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

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

onstatechange = (event) => { }

事件类型

一个通用的 Event

示例

给定一个 RTCPeerConnection 对象 pc,以下代码创建一个事件处理程序,当 ICE transport 进入失败状态时,该处理程序会调用一个名为 handleFailure() 的函数。

js
let iceTransport = pc.getSenders()[0].transport.iceTransport;

iceTransport.addEventListener("statechange", (ev) => {
  if (iceTransport.state === "failed") {
    handleFailure(pc);
  }
});

使用 onstatechange 事件处理程序属性的相同代码如下所示:

js
let iceTransport = pc.getSenders()[0].transport.iceTransport;

iceTransport.onstatechange = (ev) => {
  if (iceTransport.state === "failed") {
    handleFailure(pc);
  }
};

规范

规范
WebRTC:浏览器中的实时通信
# event-icetransport-statechange
WebRTC:浏览器中的实时通信
# dom-rtcicetransport-onstatechange

浏览器兼容性

另见