RTCPeerConnection: addTransceiver() 方法

Baseline 已廣泛支援

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

RTCPeerConnection 介面的 addTransceiver() 方法會建立一個新的 RTCRtpTransceiver,並將其新增到與 RTCPeerConnection 關聯的收發器集合中。每個收發器代表一個雙向流,並關聯一個 RTCRtpSender 和一個 RTCRtpReceiver

語法

js
addTransceiver(trackOrKind)
addTransceiver(trackOrKind, init)

引數

trackOrKind

要與收發器關聯的 MediaStreamTrack,或者用作接收器 track(進而作為 RTCRtpReceiver 本身)的 kind 的字串。

init 可選

一個用於在建立新收發器時指定任何選項的物件。可能的值為:

direction 可選

新收發器的首選方向。此值用於初始化新的 RTCRtpTransceiver 物件 RTCRtpTransceiver.direction 屬性。

sendEncodings 可選

在從 RTCRtpSender 傳送 RTP 媒體時允許的編碼陣列。這與傳遞給 RTCRtpSender.setParameters()parameter.encodings 陣列相同。

streams 可選

要新增到收發器 RTCRtpReceiverMediaStream 物件列表;當遠端對端的 RTCPeerConnection 發生 track 事件時,這些將是該事件指定的流。

返回值

將用於交換媒體資料的 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

瀏覽器相容性

另見