如何判断 pc.onnegotiationneeded 是不是因为流已被删除而被解雇?

Posted

技术标签:

【中文标题】如何判断 pc.onnegotiationneeded 是不是因为流已被删除而被解雇?【英文标题】:How to tell if pc.onnegotiationneeded was fired because stream has been removed?如何判断 pc.onnegotiationneeded 是否因为流已被删除而被解雇? 【发布时间】:2015-05-02 07:34:54 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

MDN documentation for the onnegotiationneeded handler 声明:

这应该设置为您提供的一个函数,该函数传递一个 参数:一个Event对象,包含negotiationneeded事件。 事件中没有提供其他信息;任何你 需要,你可以通过检查的属性得到 RTCPeerConnection.

所以基本上,你不能单独通过回调来做到这一点。但您也许可以将它与onstreamaddedonstreamremoved 处理程序一起使用

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

【讨论】:

以上是关于如何判断 pc.onnegotiationneeded 是不是因为流已被删除而被解雇?的主要内容,如果未能解决你的问题,请参考以下文章

Python如何判断录入非数字?

两个一维数组如何判断是相等的?

如何判断页面内容是不是被修改过

如何判断一个类是不是支持某属性和方法以及如何判断IOS的版本

如何判断两个实体是不是相等?

java中如何判断日期?