RTCPeerConnection:track 事件
当新的 track 已添加到连接的 RTCRtpReceiver 时,会向 RTCPeerConnection 上的 ontrack 事件处理程序发送 track 事件。 在此事件送达时,新的 track 已完全添加到 peer connection。 更多详情请参阅 Track 事件类型。
在发送此事件时,新的 track 已完全添加到 peer connection。 更多详情请参阅 Track 事件类型。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("track", (event) => { })
ontrack = (event) => { }
事件类型
一个 RTCTrackEvent。 继承自 Event。
事件属性
由于 RTCTrackEvent 基于 Event,因此其属性也可用。
receiver只读-
添加到
RTCPeerConnection的 track 所使用的RTCRtpReceiver。 streams只读 可选-
一个
MediaStream对象数组,每个对象代表已添加的track所属的媒体流之一。 默认情况下,数组为空,表示一个无流的 track。 track只读-
已添加到连接的
MediaStreamTrack。 transceiver只读-
新 track 正在使用的
RTCRtpTransceiver。
示例
此示例代码展示了如何创建一个新的 RTCPeerConnection,然后添加一个 track 事件处理程序。
js
pc = new RTCPeerConnection({
iceServers: [
{
urls: "turn:fake.turn-server.url",
username: "some username",
credential: "some-password",
},
],
});
pc.addEventListener("track", (e) => {
videoElement.srcObject = e.streams[0];
hangupButton.disabled = false;
});
事件处理程序将新 track 的第一个流分配给一个现有的 <video> 元素,该元素使用变量 videoElement 标识。
您也可以将事件处理函数分配给 ontrack 属性,而不是使用 addEventListener()。
js
pc.ontrack = (e) => {
videoElement.srcObject = e.streams[0];
hangupButton.disabled = false;
return false;
};
规范
| 规范 |
|---|
| WebRTC:浏览器中的实时通信 # event-track |
浏览器兼容性
加载中…