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

标签 javascript google-chrome web-audio-api web-mediarecorder

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

图标看起来像这样:

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的一个。
当您停止 MediaRecorder 时,流仍然处于事件状态。

要停止此 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/

相关文章:

javascript - 如何使用 JavaScript 在 div 中加载 HTML 页面?

web-audio-api - 使用 Web Audio Api 播放编码的音频流

javascript - 双重提交CSRF保护跨域

javascript - 获取修改后的样式表的文本 (Firefox)

java - 如何在谷歌浏览器中获取 Activity 标签页索引?

firefox - 在 Firefox 和 Chrome 中隐藏多行 SELECT 的垂直滚动条?

javascript - 使用 JS (WebAudio API) 分块处理音频

google-chrome - Chrome : Wrong sound when changing the audio source for Audio element and MediaStreamAudioDestinationNode

javascript - Jquery 自动完成 _renderItem 不工作

javascript - Node.js 上的 V8 当前值是多少