通过forEach(function(track){track.stop();}关闭它后重新启动流

时间:2020-10-08 06:16:30

标签: javascript html video-streaming

myVideoStream.getTracks().forEach(function(track) {
  track.stop();
}

如何在关闭所有轨道后重新启动流轨道。 或在视频流应用中打开和关闭相机的任何其他方法(例如在Google Meet中打开关闭视频按钮)

1 个答案:

答案 0 :(得分:0)

documentation at MDN说了关于停止曲目的以下内容。

调用stop()告诉用户代理,MediaStreamTrack不再需要轨道的源(无论源是什么,包括文件,网络流或本地摄像机或麦克风)。由于多个音轨可能使用同一音源(例如,如果两个选项卡使用设备的麦克风),则音源本身并不一定会立即停止。而是将其与轨道解除关联,并且停止跟踪对象。一旦没有媒体轨道正在使用该来源,该来源实际上可能会完全停止。

这意味着您必须通过创建新的流来重新启动流,因为媒体已完全停止运行。