RTCRtpSender - 提供了控制和获取 MediaStreamTrack 的能力
RTCRtpSender
接口提供了控制和获取有关特定 MediaStreamTrack
如何编码并发送到远程对等方的详细信息的能力。使用它,您可以配置用于相应轨道的编码,获取有关设备媒体功能的信息,等等。您还可以获得对 RTCDTMFSender
的访问权限,RTCDTMFSender
可用于将 DTMF 代码(模拟用户按下电话拨号盘上的按钮)发送到远程对等方。
属性
RTCRtpSender.dtmf
只读
一个 RTCDTMFSender
,可以用于在由 RTCRtpSender
对象表示的 RTP 会话上使用 telephone-event
(电话事件)有效负载来发送 DTMF 音调。如果为 null
,则轨道和 / 或连接不支持 DTMF。仅音频轨道可以支持 DTMF。
RTCRtpSender.track
只读
一个 MediaStreamTrack
,由 RTCRtpSender
处理。如果 track
为 null
,则 RTCRtpSender
不发送任何内容。
RTCRtpSender.transport
只读
一个 RTCDtlsTransport
,发送方通过其交换用于管理媒体和控制数据传输的 RTP 和 RTCP 数据包。在建立传输之前,该值为 null
。使用捆绑时,可能有多个收发器共享同一传输对象。
过时的属性
rtcpTransport
此属性已被删除;RTP 和 RTCP 传输已合并为一个传输。请改用 transport
属性。
方法
RTCRtpSender.getParameters()
返回一个 RTCRtpParameters
对象,该对象描述 track
上媒体的编码和传输的当前配置。
RTCRtpSender.getStats()
返回一个 Promise
,它解析为一个 RTCStatsReport
,提供了使用该 RTCRtpSender
发送的所有出站流的统计数据。
RTCRtpSender.setParameters()
对参数进行更改,这些参数用于配置 track
的编码方式以及如何将其传输到远程对等方。
RTCRtpSender.setStreams()
设置与此发送者正在发送的与 track
关联的 MediaStream
。
RTCRtpSender.replaceTrack()
尝试将 RTCRtpSender
当前正在发送的轨道替换为另一个轨道,而不执行重新协商。例如,可以使用此方法在设备上的前置摄像头和后置摄像头之间切换。
静态方法
RTCRtpSender.getCapabilities()
返回一个 RTCRtpCapabilities
对象,该对象描述系统发送指定类型的媒体数据的能力。
规范
规范 | 状态 | 备注 |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browsers RTCRtpSender 的定义 |
候选推荐 | - |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持 | 12 | 34 | 不支持 | 支持 | 支持 |
dtmf | 支持 | ≤18 | 52 | 不支持 | 支持 | 未知 |
getCapabilities() | 支持 | 12 | 未知 | 不支持 | 支持 | 未知 |
getParameters() | 67 | ≤79 | 支持 | 不支持 | 支持 | 支持 |
getStats() | 67 | ≤18 | 55 | 不支持 | 54 | 未知 |
replaceTrack() | 65 | ≤18 | 支持 | 不支持 | 支持 | 支持 |
rtcpTransport | 不支持 | 12 — 79 | 34 | 不支持 | 未知 | 未知 |
setParameters() | 支持 | ≤79 | 641 46 | 不支持 | 支持 | 未知 |
track | 支持 | 12 | 34 | 不支持 | 支持 | 支持 |
transport | 不支持 | 12 — 79 | 34 | 不支持 | 未知 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 未知 | 34 | 未知 | 支持 | 支持 |
dtmf | 支持 | 支持 | 未知 | 52 | 未知 | 支持 | 未知 |
getCapabilities() | 支持 | 支持 | 未知 | 未知 | 未知 | 支持 | 未知 |
getParameters() | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
getStats() | 67 | 67 | 未知 | 55 | 未知 | 48 | 未知 |
replaceTrack() | 65 | 65 | 未知 | 支持 | 未知 | 支持 | 支持 |
rtcpTransport | 不支持 | 不支持 | 未知 | 34 | 未知 | 未知 | 未知 |
setParameters() | 支持 | 支持 | 未知 | 641 46 | 未知 | 支持 | 未知 |
track | 支持 | 支持 | 未知 | 34 | 未知 | 支持 | 支持 |
transport | 不支持 | 不支持 | 未知 | 34 | 未知 | 未知 | 未知 |
1. 从 Firefox 64 开始,现在应该实时更新对参数的更改。