Javascript 通过forEach关闭流后重新启动流(函数(track){track.stop();}

Javascript 通过forEach关闭流后重新启动流(函数(track){track.stop();},javascript,html,video-streaming,Javascript,Html,Video Streaming,如何在关闭所有轨迹后重新启动流轨迹。 或者在视频流应用程序中打开或关闭摄像机的任何替代方法(如在google meet中打开或关闭视频按钮)下面是关于停止曲目的说明 调用stop()告诉用户代理,MediaStreamTrack不再需要曲目的来源,无论该来源是什么,包括文件、网络流或本地摄像机或麦克风。因为多个曲目可能使用同一来源(例如,如果两个选项卡使用设备的麦克风),源本身不一定立即停止。相反,它与曲目断开关联,曲目对象停止。一旦没有媒体曲目使用源,源实际上可能会完全停止 这意味着您必须通过

如何在关闭所有轨迹后重新启动流轨迹。 或者在视频流应用程序中打开或关闭摄像机的任何替代方法(如在google meet中打开或关闭视频按钮)

下面是关于停止曲目的说明

调用stop()告诉用户代理,MediaStreamTrack不再需要曲目的来源,无论该来源是什么,包括文件、网络流或本地摄像机或麦克风。因为多个曲目可能使用同一来源(例如,如果两个选项卡使用设备的麦克风),源本身不一定立即停止。相反,它与曲目断开关联,曲目对象停止。一旦没有媒体曲目使用源,源实际上可能会完全停止


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

这意味着我必须使用navigator.mediaDevices.getUserMedia({video:true})再次创建一个视频流完全正确。停止流后,网络摄像头或麦克风将关闭。因此,您必须使用
navigator.mediaDevices.getUserMedia
重新启动它们。
myVideoStream.getTracks().forEach(function(track) {
  track.stop();
}