RTCRtpSender: getParameters() 方法

RTCRtpSender 接口的 getParameters() 方法返回一个对象,该对象描述了发送方 track 如何编码并传输到远程 RTCRtpReceiver 的当前配置。

语法

js
getParameters()

参数

无。

返回值

指示发送方当前配置的对象。

encodings

对象数组,每个对象指定用于对音轨媒体进行编码的单个编解码器的参数和设置。对象的属性包括

active

如果正在发送编码,则为 true(默认值),如果未发送或使用,则为 false

dtx 已弃用 非标准

仅用于 RTCRtpSenderkindaudio,此属性指示是否正在使用不连续传输(一项功能,通过该功能,在没有语音活动的情况下,手机会自动关闭或麦克风静音)。该值取 enableddisabled

maxBitrate

一个正整数,指示用户代理允许授予使用此编码进行编码的音轨的最大每秒位数。其他参数可能会进一步限制比特率,例如 maxFramerate 的值或传输或物理网络的可用带宽。

该值使用由 RFC 3890,第 6.2.2 节 定义的标准传输独立应用程序特定最大值 (TIAS) 带宽计算;这是在不考虑 IP、TCP 或 UDP 等协议开销的情况下所需的带宽。

请注意,可以采用多种方式实现比特率,具体取决于媒体和编码。例如,对于视频,可以通过丢帧来实现低比特率(比特率为零可能只允许发送一帧),而对于音频,如果比特率过低而无法发送,则音轨可能必须停止播放。

maxFramerate

一个值,指定此编码允许的最大每秒帧数。

priority

一个字符串,指示 RTCRtpSender 的优先级,这可能决定用户代理如何在发送方之间分配带宽。允许的值为 very-lowlow(默认值)、mediumhigh

rid

一个字符串,如果设置,则指定使用 RID 标头扩展发送的 RTP 流 ID (RID)。此参数无法使用 setParameters() 修改。其值只能在首次创建转发器时设置。

scaleResolutionDownBy

仅用于其音轨的 kindvideo 的发送方,这是一个浮点值,指定在编码过程中缩小视频的因子。默认值 1.0 表示视频将以其原始大小进行编码。值为 2.0 将视频帧在每个维度上缩小 2 倍,导致视频大小为原始视频的 1/4。该值不得小于 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,第 5.3.1 节 中进行了描述。此参数在最初设置后无法更改。

rtcp

一个 RTCRtcpParameters 对象,提供用于发送方或接收方上的 RTCP 的配置参数。此参数在最初设置后无法更改。

degradationPreference 已弃用 可选

指定 WebRTC 层在带宽受限的情况下处理优化带宽与质量的优选方式。可能的值为 maintain-frameratemaintain-resolutionbalanced。默认值为 balanced

示例

此示例获取发送方的当前事务 ID;事务 ID 唯一地标识当前参数集,以确保始终以正确的顺序处理对 setParameters() 的调用,避免无意中用旧参数覆盖参数。

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

  return parameters.transactionId;
}

同样,此代码获取 RTCRtpSenderRTCP 使用的规范名称 (CNAME)。

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

  return parameters.rtcp.cname;
}

规范

规范
WebRTC:浏览器中的实时通信
# dom-rtcrtpsender-getparameters

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅