RTCTrackEvent - 表示 WebRTC 的 track 事件
RTCTrackEvent
是 WebRTC API 的接口,表示 track
事件,该事件在新的 MediaStreamTrack
添加到 RTCPeerConnection
的 RTCRtpReceiver
时触发,它是 RTCPeerConnection
的一部分。事件的目标是添加轨道的 RTCPeerConnection
对象。
该事件由 WebRTC 层发送到网站或应用程序,因此您通常不需要自己实例化 RTCTrackEvent
。
构造函数
RTCTrackEvent()
创建并返回一个新的 RTCTrackEvent
对象,该对象使用从指定的 RTCTrackEventInit
字典中的属性进行初始化。您可能不需要自己创建新的跟踪事件,因为它们通常是由 WebRTC 基础结构创建并发送到关联的 ontrack
事件处理程序。
属性
RTCTrackEvent
基于 Event
,因此也继承了它的属性。
receiver
只读
已添加到 RTCPeerConnection
的轨道使用的 RTCRtpReceiver
。
streams
只读 可选
一个包含 MediaStream
对象的数组,每个对象代表添加的 track
所属的媒体流之一。默认情况下,该数组为空,表示没有流跟踪。
track
只读
已添加到连接中的 MediaStreamTrack
。
transceiver
只读
新轨道正在使用 RTCRtpTransceiver
。
轨道事件类型
轨道事件只有一种。
track
在将 track
事件传递到 RTCPeerConnection
的 ontrack
处理程序时,新媒体已完成对特定 RTCRtpReceiver
的协商(由事件的 receiver
属性指定)。
此外,接收方的 track
指定的 MediaStreamTrack
与事件的 track
指定的 MediaStreamTrack
相同,并且该轨道已添加到任何关联的远程 MediaStream
对象中。
您可以添加一个 track
事件侦听器,以在新跟踪可用时得到通知,例如,您可以使用 将其媒体附加到 video 元素上 或 ontrack 事件处理程序属性。
您可以添加一个 track
事件侦听器,以便在新轨道可用时得到通知,例如,可以将其媒体附加到 <video>
元素,使用 RTCPeerConnection.addEventListener()
或 ontrack
事件处理程序属性。
注意: 请记住,当新的入站跟踪已添加到连接中时,您会收到
track
事件,当调用addTrack()
将轨道添加到连接的远端,也会触发远程对等方上的track
事件。
实例
这个简单的例子为 track
事件创建了一个事件监听器,它将 <video>
元素(ID 为 videobox
)的 srcObject
属性设置为事件的 streams
数组中传递的列表中的第一个流。
peerConnection.addEventListener("track", e => {
let videoElement = document.getElementById("videobox");
videoElement.srcObject = e.streams[0];
}, false);
规范
规范 | 状态 | 备注 |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browsers RTCTrackEvent 的定义 |
候选推荐 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 56 | ≤18 | 22 | 不支持 | 43 | 支持 |
receiver | 56 | ≤18 | 22 | 不支持 | 43 | 支持 |
streams | 56 | ≤18 | 22 | 不支持 | 43 | 支持 |
track | 56 | ≤18 | 22 | 不支持 | 43 | 支持 |
transceiver | 69 | ≤18 | 59 | 不支持 | 43 | 支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 56 | 56 | 未知 | 44 | 未知 | 43 | 支持 |
receiver | 56 | 56 | 未知 | 44 | 未知 | 43 | 支持 |
streams | 56 | 56 | 未知 | 44 | 未知 | 43 | 支持 |
track | 56 | 56 | 未知 | 44 | 未知 | 43 | 支持 |
transceiver | 69 | 69 | 未知 | 59 | 未知 | 43 | 支持 |