RTCRtpTransceiver: direction 属性

The RTCRtpTransceiver property direction is a string that indicates the transceiver's preferred directionality.

方向性表示转发器是否会提供发送和/或接收 RTP 数据,或者它是否处于非活动状态或停止(终止)。在设置转发器的方向时,值不会立即应用。当前方向由 currentDirection 属性指示。

具有以下值之一的字符串

"sendrecv"

转发器提供发送和接收 RTP 数据

  • RTCRtpSender: 提供发送 RTP 数据,如果远程对等方接受连接并且至少有一个发送器的编码处于活动状态,则将执行此操作。
  • RTCRtpReceiver: 提供接收 RTP 数据,如果远程对等方接受,则会执行此操作。
"sendonly"

转发器提供发送 RTP 数据,但不接收 RTP 数据

  • RTCRtpSender: 提供发送 RTP 数据,如果远程对等方接受连接并且至少有一个发送器的编码处于活动状态,则将执行此操作。
  • RTCRtpReceiver: 提供接收 RTP 数据,也不会接收。
"recvonly"

转发器提供接收 RTP 数据,但不设置 RTP 数据

  • RTCRtpSender: 提供发送 RTP 数据,也不会发送。
  • RTCRtpReceiver: 提供接收 RTP 数据,如果远程对等方提供,则会执行此操作。
"inactive"

转发器处于非活动状态

  • RTCRtpSender: 提供发送 RTP 数据,也不会发送。
  • RTCRtpReceiver: 提供接收 RTP 数据,也不会接收。
"stopped"

这是转发器的终端状态。转发器已停止,不会发送或接收 RTP 数据,也不会提供发送或接收 RTP 数据。当转发器未停止时设置此值会引发 TypeError

  • RTCRtpSender: 提供发送 RTP 数据,也不会发送。
  • RTCRtpReceiver: 提供接收 RTP 数据,也不会接收。

异常

在设置 direction 的值时,可能会发生以下异常

InvalidStateError DOMException

接收器的 RTCPeerConnection 已关闭或 RTCRtpReceiver 已停止。

TypeError

当当前值为 stopped 以外的任何值时,正在将值设置为 stopped

描述

The direction property can be used to set or get the transceiver's preferred directionality.

更新方向性不会立即生效。如果 direction 的新值与现有值不同,则需要重新协商连接,因此会向 RTCPeerConnection 发送 negotiationneeded 事件。然后,direction 值(除了 stopped 以外)由 RTCPeerConnection.createOffer()RTCPeerConnection.createAnswer() 用于生成这些方法创建的 SDP 消息。例如,如果 direction 指定为 "sendrecv",则相应的 SDP a 行表示方向性

a=sendrecv

一旦协商过程完成并且成功应用了新的会话描述,新的方向性就会生效。

转发器的当前方向由 currentDirection 属性指示。

规范

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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅