RTCPeerConnection: addstream 事件

已弃用:此功能不再推荐。虽然某些浏览器可能仍支持此功能,但它可能已从相关 Web 标准中删除,可能正在被删除,或者可能仅出于兼容性目的而保留。避免使用它,如果可能,请更新现有代码;请查看此页面底部的兼容性表,以指导您的决策。请注意,此功能可能随时停止工作。

非标准:此功能是非标准的,并且不在标准轨道上。请勿在面向 Web 的生产网站上使用它:它不会对每个用户都起作用。实现之间也可能存在很大的不兼容性,并且行为将来可能会改变。

过时的 addstream 事件在将新的媒体(以 MediaStream 对象的形式)添加到 RTCPeerConnection 时发送到该对象。

警告:此事件已从 WebRTC 规范中删除。您应该改为监听 track 事件,该事件在为 RTCPeerConnection 添加的每个媒体轨道发送。

同样,您可以通过监视 removestream 事件来查看从连接中删除的流。

此事件不可取消,也不冒泡。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("addstream", (event) => {});

onaddstream = (event) => {};

事件类型

一个 MediaStreamEvent。继承自 Event

事件属性

由于 MediaStreamEventEvent,因此此事件还实现了这些属性.

MediaStreamEvent.stream 只读

包含与事件关联的流的 MediaStream

示例

此示例将查看用户的浏览器是否支持 track 事件。如果支持,则设置 track 事件监听器;否则,则设置 addstream 事件监听器。pcRTCPeerConnection

js
if (pc.addTrack !== undefined) {
  pc.ontrack = (ev) => {
    ev.streams.forEach((stream) => doAddStream(stream));
  };
} else {
  pc.onaddstream = (ev) => {
    doAddStream(ev.stream);
  };
}

这将为添加到 RTCPeerConnection 的每个流调用函数 doAddStream() 一次,无论浏览器发送 addstream 还是 track

您还可以使用 addEventListener() 方法来设置事件监听器

js
pc.addEventListener("addstream", (ev) => doAddStream(ev.stream), false);

浏览器兼容性

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

另请参阅