MediaRecorder.stop()不会清除标签中的录制图标

问题描述:

我开始和停止MediaRecorder流。开始时,Chrome标签中会显示红色的“录制”图标,但在停止时不会消失。MediaRecorder.stop()不会清除标签中的录制图标

的图标看起来是这样的:

enter image description here

我的代码如下所示:

const mediaRecorder = new MediaRecorder(stream); 
... 
// Recording icon in the tab becomes visible. 
mediaRecorder.start(); 
... 
// Recording icon is still visible. 
mediaRecorder.stop(); 

我也有一个mediaRecorder.onstop处理函数定义。它不返回任何东西或干扰事件对象。

在启动和停止MediaRecorder实例后,清除标签的“录制”指示符的正确方法是什么?

这是因为此录制图标是getUserMedia流之一,而不是MediaRecorder之一。
当您使用stop MediaRecorder时,流仍处于活动状态。

要停止此gUM流(或任何其他MediaStream),请致电MediaStreamTrack.stop()

stream.getTracks() // get all tracks from the MediaStream 
    .forEach(track => track.stop()); // stop each of them 

Fiddle因为stacksnippets不允许胶甚至以https ...

而一个other fiddle有溪流经过MediaRecorder.stream访问。