RTCPeerConnection: addstream 事件
已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。
非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。
已废弃的 addstream
事件会在新的媒体(以 MediaStream
对象的形式)被添加到 RTCPeerConnection
时发送给它。
警告:此事件已从 WebRTC 规范中移除。您应该改为监听 track
事件,该事件会在每个添加到 RTCPeerConnection
的媒体轨道时发送。
同样,您可以通过监听 removestream
事件来监视从连接中移除的流。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener()
之类的方法中使用事件名称,或设置事件处理程序属性。
addEventListener("addstream", (event) => { })
onaddstream = (event) => { }
事件类型
一个 MediaStreamEvent
。继承自 Event
。
事件属性
作为 Event
的 MediaStreamEvent
,此事件还实现了这些属性:.
MediaStreamEvent.stream
只读-
包含与事件关联的流的
MediaStream
。
示例
此示例用于确定用户的浏览器是否支持 track
事件。如果支持,则设置 track
事件监听器;否则,设置 addstream
事件监听器。pc
是一个 RTCPeerConnection
。
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()
方法来设置事件监听器。
pc.addEventListener("addstream", (ev) => doAddStream(ev.stream), false);
浏览器兼容性
加载中…