A
gatheringstatechange
event is sent to an
RTCIceTransport
when its
ICE
candidate gathering state changes.
The gathering state, whose actual status can be found in the transport object's
gatheringState
property, indicates whether or not the ICE agent has begun gathering candidates, and if so, if it has finished doing so.
| 冒泡 | No |
|---|---|
| 可取消 | No |
| 接口 |
事件
|
| 事件处理程序特性 |
ongatheringstatechange
|
The key difference between
gatheringstatechange
and
icegatheringstatechange
is that the latter represents the overall state of the connection including every
RTCIceTransport
used by every
RTCRtpSender
and every
RTCRtpReceiver
on the entire connection. In contrast,
gatheringstatechange
represents changes to the candidate gathering state for a single transport.
This example creates a handler for
gatheringstatechange
events on each
RTCRtpSender
associated with a given
RTCPeerConnection
. Here, the
addEventListener()
method is called to add a listener for
gatheringstatechange
事件:
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);
Likewise, you can use the
ongatheringstatechange
事件处理程序特性:
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 1.0: Real-time Communication Between Browsers
The definition of 'gatheringstatechange' in that specification. |
候选推荐 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
gatheringstatechange
event
|
Chrome No | Edge No | Firefox No | IE No | Opera No | Safari No | WebView Android No | Chrome Android No | Firefox Android No | Opera Android No | Safari iOS No | Samsung Internet Android No |
不支持
negotiationneeded
signalingstatechange
iceconnectionstatechange
icegatheringstatechange
connectionstatechange
RTCIceTransport
MediaDevices.getUserMedia()
Navigator.mediaDevices
RTCCertificate
RTCDTMFSender
RTCDTMFToneChangeEvent
RTCDataChannel
RTCDataChannelEvent
RTCDtlsTransport
RTCErrorEvent
RTCIceCandidate
RTCPeerConnection
RTCPeerConnectionIceErrorEvent
RTCPeerConnectionIceEvent
RTCRtpReceiver
RTCRtpSender
RTCRtpTransceiver
RTCSctpTransport
RTCSessionDescription
RTCStatsEvent
RTCStatsReport
RTCTrackEvent