RTCIceCandidate: priority 屬性
RTCIceCandidate 介面的只讀 **priority** 屬性根據遠端對端指定了候選者的優先順序;該值越高,遠端對端認為候選者越好。
priority 欄位的值是從傳遞給 RTCIceCandidate() 建構函式的 candidateInfo 選項物件設定的。你不能直接在選項物件中指定 priority 的值,但如果 candidate a-line 格式正確,它的值會自動從該物件的 candidate a-line 中提取。
值
一個長的無符號整數值,指示遠端對端認為候選者的優先順序。該值越大,遠端對端認為該候選者越優先。
如果 priority 未在 candidate 中指定,或者 candidate 字串無法正確解析,則 priority 被初始化為 null。
注意:如果 priority 為 null,將候選者傳遞給 addIceCandidate() 將會失敗,並丟擲一個 OperationError 異常。這僅適用於實現 priority 屬性的候選者。
用法說明
考慮這個描述 ICE 候選的 SDP 屬性行(a-line):
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host
優先順序是協議之後的數字,因此它是候選字串中的第四個欄位。在此示例中,優先順序為 2043278322。
示例
此候選者會檢查候選者的 priority,如果它大於先前看到的候選者的優先順序,則會記住該候選者以備後用。
js
let bestCandidate = {
candidate: "",
sdpMid: null,
sdpMLineIndex: null,
priority: 0,
};
function handleCandidate(candidateString) {
const candidate = new RTCIceCandidate(candidateString);
if (candidate.priority > bestCandidate.priority) {
bestCandidate = candidate;
}
}
規範
| 規範 |
|---|
| WebRTC:瀏覽器中的即時通訊 # dom-rtcicecandidate-priority |
瀏覽器相容性
載入中…