RTCRtpTransceiver: direction 屬性

Baseline 廣泛可用 *

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

* 此特性的某些部分可能存在不同級別的支援。

RTCRtpTransceiver 介面的 direction 屬性是一個字串,用於指示收發器的首選方向性。

方向性表明收發器是否會嘗試傳送和/或接收 RTP 資料,或者它是否處於非活動或已停止(終止)狀態。設定收發器的方向時,該值不會立即生效。當前方向由 currentDirection 屬性指示。

一個字串,其值可能為以下之一:

"sendrecv"

收發器嘗試傳送和接收 RTP 資料

  • RTCRtpSender:嘗試傳送 RTP 資料,如果遠端對等方接受連線並且傳送方的至少一個編碼器處於活動狀態,則會這樣做。
  • RTCRtpReceiver:嘗試接收 RTP 資料,如果遠端對等方接受,則會這樣做。
"sendonly"

收發器嘗試傳送但不接收 RTP 資料

  • RTCRtpSender:嘗試傳送 RTP 資料,如果遠端對等方接受連線並且傳送方的至少一個編碼器處於活動狀態,則會這樣做。
  • RTCRtpReceiver嘗試接收 RTP 資料,也不會這樣做。
"recvonly"

收發器嘗試接收但不傳送 RTP 資料

  • RTCRtpSender嘗試傳送 RTP 資料,也不會這樣做。
  • RTCRtpReceiver:嘗試接收 RTP 資料,如果遠端對等方也嘗試接收,則會這樣做。
"inactive"

收發器處於非活動狀態

  • RTCRtpSender嘗試傳送 RTP 資料,也不會這樣做。
  • RTCRtpReceiver嘗試接收 RTP 資料,也不會這樣做。
"stopped"

這是收發器的最終狀態。收發器已停止,將不會發送或接收 RTP 資料,也不會嘗試這樣做。當收發器尚未停止時設定此值會引發 TypeError

  • RTCRtpSender嘗試傳送 RTP 資料,也不會這樣做。
  • RTCRtpReceiver嘗試接收 RTP 資料,也不會這樣做。

異常

設定 direction 的值時,可能會發生以下異常

InvalidStateError DOMException

接收方的 RTCPeerConnection 已關閉,或者 RTCRtpReceiver 已停止。

TypeError

噹噹前值為 stopped 以外的任何值時,將其設定為 stopped

描述

direction 屬性可用於設定或獲取收發器的首選方向性。

更新方向性不會立即生效。如果 direction 的新值與現有值不同,則需要重新協商連線,因此會向 RTCPeerConnection 傳送一個 negotiationneeded 事件。然後,RTCRtpSender.createOffer()RTCPeerConnection.createAnswer() 將使用 direction 值(stopped 除外)來生成這些方法建立的 SDP 訊息。例如,如果 direction 指定為 "sendrecv",則相應的 SDP a-line 將指示方向性:

a=sendrecv

一旦協商過程完成且新的會話描述已成功應用,新的方向性就會生效。

收發器的當前方向由 currentDirection 屬性指示。

規範

規範
WebRTC:瀏覽器中的即時通訊
# dom-rtcrtptransceiver-direction

瀏覽器相容性

另見