RTCPeerConnection: addTransceiver() 方法

addTransceiver()RTCPeerConnection 接口的方法,用于创建一个新的 RTCRtpTransceiver 并将其添加到与 RTCPeerConnection 关联的转发器集合中。每个转发器都代表一个双向流,与其关联的都有一个 RTCRtpSender 和一个 RTCRtpReceiver

语法

js
addTransceiver(trackOrKind)
addTransceiver(trackOrKind, init)

参数

trackOrKind

与转发器关联的 MediaStreamTrack,或者一个用作接收器 kind 的字符串,并通过扩展接收器的 track 本身。

init 可选

一个用于在创建新转发器时指定任何选项的对象。可能的取值是

direction 可选

新转发器的首选方向性。此值用于初始化新的 RTCRtpTransceiver 对象的 RTCRtpTransceiver.direction 属性。

sendEncodings 可选

RTCRtpSender 发送 RTP 媒体时允许的编码数组。这与传递给 RTCRtpSender.setParameters()parameter.encodings 数组相同。

streams 可选

要添加到转发器 RTCRtpReceiverMediaStream 对象列表;当远程对等方的 RTCPeerConnectiontrack 事件发生时,这些是该事件将指定的流。

返回值

将用于交换媒体数据的 RTCRtpTransceiver 对象。

异常

TypeError

如果 trackOrKind 既不是 "audio" 也不是 "video",则抛出此异常。

如果使用 sendEncodings 参数,则如果存在格式错误的 rid 成员,或者一些但不是所有编码包含 rid 成员,或者不同的编码具有相同的 rid 值,则也可能抛出此错误。

RangeError

如果任何 sendEncodings 编码具有小于 0.0 的 maxFramerate 值,或者小于 1.0 的 scaleResolutionDownBy 值,则抛出此异常。

InvalidStateError DOMException

如果在关联的连接关闭时调用此方法,则抛出此异常。

InvalidAccessError DOMException

如果使用 sendEncodings 参数,并且包含除 rid 之外的只读参数,则抛出此异常。

规范

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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅