如何判断是否由于流已被删除而激发了pc.onnegotiationneed

How to tell if pc.onnegotiationneeded was fired because stream has been removed?

本文关键字:删除 onnegotiationneed pc 于流 何判断 判断 是否      更新时间:2023-09-26

我正在处理一个RTCPeerConnection(pc),它需要一个名为onnegotiation的事件处理程序。

当使用pc.addStreampc.removeStream添加或删除完整的媒体流时,会触发"onnegotiationneeded"。

是否可以在onnegotiationneeded函数内部判断它是因为添加或删除了流而被执行的?因为通过阅读这些文件,我找不到一个状态。

目前,当我执行pc.addStreampc.removeStream时,我正在切换一个标志。这个标志帮助我在onnegotiationneeded中判断它是否被流移除触发。

但我想知道浏览器(Chrome 40或Firefox 36)API是否已经提供了这样的属性?

onnegotiationneeded处理程序的MDN文档状态为:

这应该设置为您提供的函数,该函数传递一个parameter:一个Event对象,包含需要协商的事件。事件中没有提供其他信息;你有什么需要,可以通过检查RTCPeerConnection。

因此,基本上,您不能仅通过回调来完成此操作。但您可以将其与onstreamaddedonstreamremoved处理程序一起使用

您可能会在这里找到一个舒适的解决方案来跟踪添加的曲目和流。