23

我启动和停止 MediaRecorder 流。红色的“录制”图标在开始时出现在 Chrome 选项卡中,但在停止时不会消失。

图标如下所示:

在此处输入图像描述

我的代码如下所示:

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

我还mediaRecorder.onstop定义了一个处理程序。它不返回任何东西或干扰事件对象。

在启动和停止 MediaRecorder 实例后清除选项卡的“录制”指示器的正确方法是什么?

4

1 回答 1

51

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

要停止此 gUM 流(或任何其他 MediaStream),您需要调用MediaStreamTrack.stop().

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

小提琴因为即使使用 https,stacksnippets 也不允许 gUM ......

还有一个通过MediaRecorder.stream.

于 2017-05-31T03:02:10.113 回答