RTCTrackEvent

The WebRTC API 接口RTCTrackEvent表示track事件,当新的MediaStreamTrack添加到RTCRtpReceiver(它是RTCPeerConnection的一部分)时会发送该事件。

目标是正在向其添加轨道的RTCPeerConnection对象。

此事件由 WebRTC 层发送到网站或应用程序,因此您通常不需要自己实例化RTCTrackEvent

Event RTCTrackEvent

构造函数

RTCTrackEvent()

创建并返回一个新的RTCTrackEvent对象。您可能不需要自己创建新的轨道事件,因为它们通常由 WebRTC 基础设施创建并发送到连接的ontrack事件处理程序。

实例属性

由于RTCTrackEvent基于Event,因此其属性也可用。

receiver 只读

已添加到RTCPeerConnection的轨道的RTCRtpReceiver

streams 只读 可选

一个MediaStream对象的数组,每个对象都表示已添加的track所属的媒体流之一。默认情况下,数组为空,表示无流轨道。

track 只读

已添加到连接的MediaStreamTrack

transceiver 只读

新轨道正在使用的RTCRtpTransceiver

轨道事件类型

只有一种轨道事件类型。

轨道

当新的轨道已添加到连接时,会将track事件发送到RTCPeerConnection。当track事件传递到RTCPeerConnectionontrack处理程序时,新媒体已完成针对特定RTCRtpReceiver(由事件的receiver属性指定)的协商。

此外,接收器的track指定的MediaStreamTrack与事件的track指定的相同,并且该轨道已添加到任何关联的远程MediaStream对象。

您可以添加track事件侦听器以在新的轨道可用时收到通知,以便您可以例如将它的媒体附加到<video>元素,方法是使用RTCPeerConnection.addEventListener()ontrack事件处理程序属性。

注意:可能需要记住,当新的入站轨道已添加到您的连接时,您会收到track事件,并且您调用addTrack()以将轨道添加到连接的远端,从而在远程对等方触发track事件。

示例

此简单示例为track事件创建了一个事件侦听器,该侦听器将ID为videobox<video>元素的srcObject设置为事件的streams数组中传递的列表中的第一个流。

js
peerConnection.addEventListener(
  "track",
  (e) => {
    let videoElement = document.getElementById("videobox");
    videoElement.srcObject = e.streams[0];
  },
  false,
);

规范

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

浏览器兼容性

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