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 | 支持 |