RTCIceCandidate: priority 屬性

Baseline 2024
新推出

自 2024 年 5 月以來,此功能已在最新裝置和瀏覽器版本中可用。此功能可能不適用於較舊的裝置或瀏覽器。

RTCIceCandidate 介面的只讀 **priority** 屬性根據遠端對端指定了候選者的優先順序;該值越高,遠端對端認為候選者越好。

priority 欄位的值是從傳遞給 RTCIceCandidate() 建構函式的 candidateInfo 選項物件設定的。你不能直接在選項物件中指定 priority 的值,但如果 candidate a-line 格式正確,它的值會自動從該物件的 candidate a-line 中提取。

一個長的無符號整數值,指示遠端對端認為候選者的優先順序。該值越大,遠端對端認為該候選者越優先。

如果 priority 未在 candidate 中指定,或者 candidate 字串無法正確解析,則 priority 被初始化為 null

注意:如果 prioritynull,將候選者傳遞給 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

瀏覽器相容性