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 的浏览器中加载。