MediaRecorder.stop()不会清除标签中的录制图标
问题描述:
我开始和停止MediaRecorder流。开始时,Chrome标签中会显示红色的“录制”图标,但在停止时不会消失。MediaRecorder.stop()不会清除标签中的录制图标
的图标看起来是这样的:
我的代码如下所示:
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
访问。