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 |
瀏覽器相容性
載入中…