RTCIceTransport: selectedcandidatepairchange 事件
当 ICE 代理选择一对描述连接终端的新候选项时,会向 RTCIceTransport 发送一个 selectedcandidatepairchange 事件。
这对候选项又由一个 RTCIceCandidatePair 对象描述,该对象包含一个表示连接本地端的 RTCIceCandidate,以及另一个表示连接远程端的 RTCIceCandidate。
这些候选项可以结合使用,由 RTCIceTransport 建立连接,进而由 RTCPeerConnection 使用。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("selectedcandidatepairchange", (event) => { })
onselectedcandidatepairchange = (event) => { }
事件类型
一个通用的 Event。
示例
此示例为 selectedcandidatepairchange 创建了一个事件处理程序,该处理程序会更新一个显示,向用户提供有关名为 pc 的 RTCPeerConnection 的 ICE 协商进度的信息。
js
let iceTransport = pc.getSenders()[0].transport.iceTransport;
let localProtoElem = document.getElementById("local-protocol");
let remoteProtoElem = document.getElementById("remote-protocol");
iceTransport.addEventListener("selectedcandidatepairchange", (ev) => {
let pair = iceTransport.getSelectedCandidatePair();
localProtoElem.innerText = pair.local.protocol.toUpperCase();
remoteProtoElem.innerText = pair.remote.protocol.toUpperCase();
});
也可以通过直接设置 onselectedcandidatepairchange 事件处理程序属性来完成此操作。
js
let iceTransport = pc.getSenders()[0].transport.iceTransport;
let localProtoElem = document.getElementById("local-protocol");
let remoteProtoElem = document.getElementById("remote-protocol");
iceTransport.onselectedcandidatepairchange = (ev) => {
let pair = iceTransport.getSelectedCandidatePair();
localProtoElem.innerText = pair.local.protocol.toUpperCase();
remoteProtoElem.innerText = pair.remote.protocol.toUpperCase();
};
规范
| 规范 |
|---|
| WebRTC:浏览器中的实时通信 # event-icetransport-selectedcandidatepairchange |
| WebRTC:浏览器中的实时通信 # dom-rtcicetransport-onselectedcandidatepairchange |
浏览器兼容性
加载中…