RTCTrackEvent
RTCTrackEvent 接口是 WebRTC API 的一部分,代表 track 事件。当一个新的 MediaStreamTrack 被添加到 RTCPeerConnection 的一个 RTCRtpReceiver 时,会发送此事件。
事件的目标是正在添加轨道的 RTCPeerConnection 对象。
此事件由 WebRTC 层发送给网站或应用程序,因此通常您不需要自己实例化 RTCTrackEvent。
构造函数
RTCTrackEvent()-
创建并返回一个新的
RTCTrackEvent对象。您可能不需要自己创建新的 track 事件,因为它们通常由 WebRTC 基础设施创建并发送到连接的ontrack事件处理程序。
实例属性
由于 RTCTrackEvent 基于 Event,因此其属性也可用。
receiver只读-
添加到
RTCPeerConnection的轨道的RTCRtpReceiver。 streams只读 可选-
一个
MediaStream对象数组,每个对象代表一个添加到连接的track所属的媒体流。默认情况下,数组为空,表示一个无流的轨道。 track只读-
已添加到连接的
MediaStreamTrack。 transceiver只读-
新轨道正在使用的
RTCRtpTransceiver。
Track event types
只有一种类型的 track 事件。
track
当新的轨道已添加到连接时,RTCPeerConnection 会收到 track 事件。当 track 事件传递到 RTCPeerConnection 的 ontrack 处理程序时,新媒体已经完成了对特定 RTCRtpReceiver 的协商(由事件的 receiver 属性指定)。
此外,接收器的 track 指定的 MediaStreamTrack 与事件的 track 指定的相同,并且该轨道已添加到任何关联的远程 MediaStream 对象中。
您可以添加一个 track 事件监听器来在新的轨道可用时获得通知,以便您可以将媒体附加到 <video> 元素,可以使用 RTCPeerConnection.addEventListener() 或 ontrack 事件处理程序属性。
注意: 收到 track 事件时,表示您的连接已添加新的入站轨道;当您调用 addTrack() 将轨道添加到连接的远端时,这会在远程对等方上触发一个 track 事件,这一点可能很有帮助。
示例
这个简单的例子创建了一个 track 事件的事件监听器,它将 ID 为 video-box 的 <video> 元素的 srcObject 设置为事件的 streams 数组中传递的第一个流。
peerConnection.addEventListener("track", (e) => {
let videoElement = document.getElementById("video-box");
videoElement.srcObject = e.streams[0];
});
规范
| 规范 |
|---|
| WebRTC:浏览器中的实时通信 # dom-rtctrackevent |
浏览器兼容性
加载中…