RTCRtpTransceiver: direction 属性
Baseline 广泛可用 *
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 的值时,可能会发生以下异常
InvalidStateErrorDOMException-
接收方的
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 |
浏览器兼容性
加载中…