RTCPeerConnection: icegatheringstatechange 事件
icegatheringstatechange
事件在 RTCPeerConnection
上的 ICE 候选者收集过程状态发生变化时,会发送到 onicegatheringstatechange
事件处理程序。这表示连接的 iceGatheringState
属性的值已更改。
当 ICE 首次开始收集连接候选者时,值会从 new
更改为 gathering
,以指示连接候选者配置收集过程已开始。当值更改为 complete
时,构成 RTCPeerConnection
的所有传输都已完成 ICE 候选者的收集。
注意:虽然可以通过监视 icegatheringstatechange
事件并检查 iceGatheringState
的值是否变为 complete
来确定 ICE 候选者收集是否完成,但您也可以让 icecandidate
事件的处理程序查看其 candidate
属性是否为 null
。这也表示候选者的收集已完成。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener()
之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("icegatheringstatechange", (event) => {});
onicegatheringstatechange = (event) => {};
事件类型
一个通用的 Event
。
示例
此示例为 icegatheringstatechange
事件创建了一个处理程序。
js
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;
}
};
同样,您可以使用 addEventListener()
为 icegatheringstatechange
事件添加一个监听器
js
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;
}
},
false,
);
规范
规范 |
---|
WebRTC:浏览器中的实时通信 # dom-rtcpeerconnection-onicegatheringstatechange |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。