如何从MediaStream中删除曲目并"停止"网络摄像头?

Jon*_*lay 7 javascript webrtc getusermedia

我正在尝试从MediaStream中删除一个曲目.MediaStream.removeTrack()从流中删除轨道,但相机指示灯保持亮起,表示相机仍处于活动状态.

https://developer.mozilla.org/en-US/docs/Web/API/MediaStreamTrack?redirectlocale=en-US&redirectslug=DOM%2FMediaStreamTrack

这引用了stop()一种我认为完全停止相机的方法,但是我得到了"Object MediaStreamTrack has no method 'stop'"

有没有办法解决这个问题,还是我必须停止整个流,然后用我不想要的曲目重新创建它?例如,我想在录音带还在的时候删除视频轨道.

Ana*_*d S 10

MediaStreamTrack.stop()现已添加到Chrome中.

MediaStream.stop()弃用在Chrome 45.

您应该使用MediaStream.getVideoTracks()获取视频轨道并停止使用轨道MediaStreamTrack.stop()

  • 我想知道这个设计决定的动机是什么。有什么地方讨论吗? (2认同)

Sam*_*ton 0

您需要在 MediaStream 上调用 stop(),而不是 MediaStreamTrack。

看看simpl.info/gum。从控制台调用stream.stop():录制停止并且摄像机指示灯熄灭。

  • 确切地。这真是太糟糕了,就我个人而言,当我在应用程序中时,我非常依赖我的网络摄像头灯。如果它打开,我不相信它没有被使用。我想我现在必须停止整个流,然后执行新的 getUserMedia 调用。 (3认同)