我启动和停止MediaRecorder流。红色的“正在录制”图标在启动时显示在Chrome标签中,但在停止时不会消失。

图标如下所示:

javascript - MediaRecorder.stop()不会清除选项卡中的录制图标-LMLPHP

我的代码如下所示:

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中的一个。
当您对MediaRecorder进行stop编码时,流仍处于 Activity 状态。

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

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

Fiddle ,因为即使使用https,stacksnippets也不允许使用gUM ...

还有一个other fiddle,通过MediaRecorder.stream访问流。

关于javascript - MediaRecorder.stop()不会清除选项卡中的录制图标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44274410/

10-11 16:59