RTCIceCandidate: priority 属性
RTCIceCandidate
接口的只读 priority
属性根据远程对等方的优先级指定候选者的优先级;此值越大,远程对等方认为候选者越好。
priority
字段的值是从传递给 RTCIceCandidate()
构造函数的 candidateInfo
选项对象中设置的。您无法在选项对象中直接指定 priority
的值,但如果其格式正确,它的值会从对象的 candidate
a 行中自动提取。
值
一个长整型无符号整数,表示根据远程对等方的优先级进行的候选者优先级。此值越大,远程对等方越偏好此候选者。
如果 candidate
中未指定 priority
,或者 candidate
字符串无法正确解析,则 priority
初始化为 null
。
注意:如果 priority
为 null
,则将候选者传递给 addIceCandidate()
会失败,并抛出 OperationError
异常。这仅适用于候选者实现 priority
属性的情况。
使用说明
考虑一下描述 ICE 候选者的 SDP 属性行 (a 行)
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 |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。