如何在 WebRtc 中关闭 peerConnection

How to close peerConnection in WebRtc

WebRtc sample

如果我按下呼叫,allow/deny 菜单会显示在屏幕上方。当我按下允许时,Chrome 开始在 header 中显示红色圆圈,表示麦克风处于活动状态。其他 Chrome 选项卡中的所有其他声音都被静音(例如 youtube 视频)。

当我按下挂起时,红圈并没有消失,第二个选项卡中的 youtube 视频仍然静音。我必须按 F5 才能恢复通话前的状态。

有没有PeerConnection来停止通话和停止麦克风录音?

是的,"red light" 仍然存在的原因是通过 getusermedia 收集的 mediaStream 对象(在该特定页面上称为 localstream)中的媒体轨道仍然 playing/active。

要关闭媒体流并因此释放对本地媒体输入的任何保留,只需调用 localstream.stop() 即可结束流并停止访问本地媒体输入。这将停止所有关联的媒体轨道。

您也可以通过在各个媒体轨道上调用 stop()(从 getVideoTracksmediaStream 中的 getAudioTracks 获取)来执行此操作。

至于其他音频在其他 pages/apps 中被拒绝。 Here is the crbug handling that issue.

旁注:如果媒体是通过 peerConnection 推送的,那么由于 mediaStream 的变化,您可能不得不重新协商连接。