如何在 WebRtc 中关闭 peerConnection
How to close peerConnection in WebRtc
如果我按下呼叫,allow/deny 菜单会显示在屏幕上方。当我按下允许时,Chrome 开始在 header 中显示红色圆圈,表示麦克风处于活动状态。其他 Chrome 选项卡中的所有其他声音都被静音(例如 youtube 视频)。
当我按下挂起时,红圈并没有消失,第二个选项卡中的 youtube 视频仍然静音。我必须按 F5 才能恢复通话前的状态。
有没有PeerConnection来停止通话和停止麦克风录音?
是的,"red light" 仍然存在的原因是通过 getusermedia
收集的 mediaStream 对象(在该特定页面上称为 localstream
)中的媒体轨道仍然 playing/active。
要关闭媒体流并因此释放对本地媒体输入的任何保留,只需调用 localstream.stop()
即可结束流并停止访问本地媒体输入。这将停止所有关联的媒体轨道。
您也可以通过在各个媒体轨道上调用 stop()
(从 getVideoTracks
或 mediaStream
中的 getAudioTracks
获取)来执行此操作。
至于其他音频在其他 pages/apps 中被拒绝。 Here is the crbug handling that issue.
旁注:如果媒体是通过 peerConnection 推送的,那么由于 mediaStream
的变化,您可能不得不重新协商连接。
如果我按下呼叫,allow/deny 菜单会显示在屏幕上方。当我按下允许时,Chrome 开始在 header 中显示红色圆圈,表示麦克风处于活动状态。其他 Chrome 选项卡中的所有其他声音都被静音(例如 youtube 视频)。
当我按下挂起时,红圈并没有消失,第二个选项卡中的 youtube 视频仍然静音。我必须按 F5 才能恢复通话前的状态。
有没有PeerConnection来停止通话和停止麦克风录音?
是的,"red light" 仍然存在的原因是通过 getusermedia
收集的 mediaStream 对象(在该特定页面上称为 localstream
)中的媒体轨道仍然 playing/active。
要关闭媒体流并因此释放对本地媒体输入的任何保留,只需调用 localstream.stop()
即可结束流并停止访问本地媒体输入。这将停止所有关联的媒体轨道。
您也可以通过在各个媒体轨道上调用 stop()
(从 getVideoTracks
或 mediaStream
中的 getAudioTracks
获取)来执行此操作。
至于其他音频在其他 pages/apps 中被拒绝。 Here is the crbug handling that issue.
旁注:如果媒体是通过 peerConnection 推送的,那么由于 mediaStream
的变化,您可能不得不重新协商连接。