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 开始,现在应该实时更新对参数的更改。