RTCRtpSender: getParameters() 方法

Baseline 廣泛可用 *

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流瀏覽器均已支援。

* 此特性的某些部分可能存在不同級別的支援。

RTCRtpSender 介面的 getParameters() 方法返回一個物件,該物件描述了傳送方 track 的當前配置,以及該配置如何被編碼並傳輸到遠端 RTCRtpReceiver

語法

js
getParameters()

引數

無。

返回值

一個指示傳送方當前配置的物件。

encodings

一個物件陣列,每個物件指定了一個可以用來編碼軌道媒體的編解碼器的引數和設定。物件的屬性包括:

啟用

如果正在傳送編碼,則為 true(預設值);如果未傳送或未使用,則為 false

codec 可選

選擇此編碼的 RTP 流使用的 媒體編解碼器。如果未設定,使用者代理可以選擇任何為傳送而協商的編解碼器。

channels 可選

一個正整數,指示編解碼器支援的通道數。例如,對於音訊編解碼器,值為 1 表示單聲道,值為 2 表示立體聲。

clockRate

一個正整數,指定編解碼器的時鐘頻率(以赫茲 (Hz) 為單位)。時鐘頻率是編解碼器的 RTP 時間戳前進的速率。大多數編解碼器都有特定的允許值或允許值範圍。IANA 維護著一個編解碼器及其引數列表,包括其時鐘頻率。

mimeType

一個字串,指示編解碼器的 MIME 媒體型別和子型別,格式為 "type/subtype"。RTP 使用的 MIME 型別字串與別處使用的不同。IANA 維護著一個有效 MIME 型別登錄檔。另請參閱 WebRTC 使用的編解碼器,瞭解可能在此引用的潛在編解碼器的詳細資訊。

sdpFmtpLine 可選

一個字串,提供本地描述提供的特定於格式的引數。

dtx 已棄用 非標準

僅用於 RTCRtpSender 且其 kindaudio 的情況。此屬性指示是否正在使用不連續傳輸(一種電話自動關閉或麥克風靜音的功能,在沒有語音活動時使用)。值可以是 enableddisabled

maxBitrate

一個正整數,表示使用者代理允許分配給使用此編碼進行編碼的軌道的每秒最大位元數。其他引數可能會進一步限制位元率,例如 maxFramerate 的值,或用於傳輸或物理網路的可用頻寬。

該值使用標準 Transport Independent Application Specific Maximum (TIAS) 頻寬計算,該頻寬由 RFC 3890, section 6.2.2 定義;這是所需的最大頻寬,不考慮 IP、TCP 或 UDP 等協議的開銷。

請注意,位元率可以透過多種方式實現,具體取決於媒體和編碼。例如,對於影片,低位元率可能透過丟幀來實現(位元率為零可能只允許傳送一幀);而對於音訊,如果位元率太低而無法傳送,軌道可能必須停止播放。

maxFramerate

一個指定允許此編碼的最大每秒幀數的值。

優先順序

一個字串,指示 RTCRtpSender 的優先順序,這可能會決定使用者代理如何在傳送方之間分配頻寬。允許的值為 very-lowlow(預設值)、mediumhigh

rid

一個字串,如果設定,則指定將使用 RID 頭部擴充套件傳送的RTP 流 IDRID)。此引數不能透過 setParameters() 修改。其值只能在收發器首次建立時設定。

scaleResolutionDownBy

僅用於軌道 kindvideo 的傳送方。這是一個浮點值,指定編碼過程中影片縮小的因子。預設值 1.0 表示影片將以其原始大小編碼。值為 2.0 表示影片幀在每個維度上縮小 2 倍, resulting in a video 1/4 the size of the original. 該值不得小於 1.0(嘗試將影片放大將丟擲 RangeError)。

transactionId

一個包含唯一 ID 的字串。此值用於確保 setParameters() 只能用於修改由特定先前呼叫 getParameters() 返回的引數。呼叫者無法更改此引數。

codecs

一個物件陣列,描述傳送方已設定為啟用的、並準備使用的 媒體編解碼器。此引數在初始設定後無法更改。

陣列中的每個編解碼器物件可能具有以下屬性:

channels 可選

一個正整數,指示編解碼器支援的通道數。例如,對於音訊編解碼器,值為 1 表示單聲道,值為 2 表示立體聲。

clockRate

一個正整數,指定編解碼器的時鐘頻率(以赫茲 (Hz) 為單位)。時鐘頻率是編解碼器的 RTP 時間戳前進的速率。大多數編解碼器都有特定的允許值或允許值範圍。IANA 維護著一個編解碼器及其引數列表,包括其時鐘頻率。

mimeType

一個字串,指示編解碼器的 MIME 媒體型別和子型別,格式為 "type/subtype"。RTP 使用的 MIME 型別字串與別處使用的不同。IANA 維護著一個有效 MIME 型別登錄檔。另請參閱 WebRTC 使用的編解碼器,瞭解可能在此引用的潛在編解碼器的詳細資訊。

payloadType

用於標識此編解碼器的 RTP 有效載荷型別

sdpFmtpLine 可選

一個字串,提供本地描述提供的特定於格式的引數。

headerExtensions

一個零個或多個 RTP 頭部擴充套件的陣列,每個擴充套件都標識了傳送方或接收方支援的擴充套件。頭部擴充套件在 RFC 3550, section 5.3.1 中進行了描述。此引數在初始設定後無法更改。

rtcp

一個物件,提供用於傳送方的 RTCP 的配置引數。此引數無法更改。

該物件可以具有以下屬性:

cname

一個只讀字串,提供 RTCP 使用的規範名稱 (CNAME)(例如,在 SDES 訊息中)。

reducedSize

一個只讀布林值,如果配置了縮小尺寸 RTCP(RFC 5506),則為 True;如果指定了複合 RTCP(RFC 3550),則為 False

degradationPreference 已棄用 可選

指定 WebRTC 層在頻寬受限情況下最佳化頻寬與質量的首選方式。可能的值為 maintain-frameratemaintain-resolutionbalanced。預設值為 balanced

示例

此示例獲取傳送方的當前事務 ID;事務 ID 唯一標識當前一組引數,以確保對 setParameters() 的呼叫始終按正確的順序處理,避免意外地用舊引數覆蓋引數。

js
function getSenderTransactionID(sender) {
  let parameters = sender.getParameters();

  return parameters.transactionId;
}

同樣,此程式碼獲取 RTCRtpSender 上用於 RTCP 的規範名稱 (CNAME)。

js
function getRtpCNAME(sender) {
  let parameters = sender.getParameters();

  return parameters.rtcp.cname;
}

規範

規範
WebRTC:瀏覽器中的即時通訊
# dom-rtcrtpsender-getparameters

瀏覽器相容性

另見