2016-04-28 40 views
1

我正在尝试使用navigator.getUserMedia()api来捕获音频/视频。我有以下代码。navigator.getUserMedia在运行时添加视频轨迹

var cameraEl; 

    window.URL = window.URL || window.webkitURL; 
    navigator.getUserMedia = (navigator.getUserMedia || 
          navigator.webkitGetUserMedia || 
          navigator.mozGetUserMedia); 
    navigator.getUserMedia(
     { video: true, audio: true }, 
     function (stream) { 

      cameraEl = document.getElementById("selfCam"); 
      cameraEl.src = window.URL.createObjectURL(stream); 
      window.mediaStream = stream; 

     }, 
     function() { 
      alert('Error: Camera failed!'); 
     } 
    ); 

比我停止视频轨道这样,

window.mediaStream.getVideoTracks()[0].stop(); 

现在我想重新开始视频轨道。我如何开始它?

回答

1

您需要再次调用getUserMedia。 stop()是最后一个动作。

+0

谢谢菲利普。但是有什么功能可以让我暂停视频轨道并在稍后恢复,而不是停止视频轨道。 – Nandkishor

+0

最简单的方法是通过这样做来禁用视频轨道: 'stream.getVideoTracks()[0] .enabled = false;' 这会发送黑色帧,直到您将启用设置为真。这不会释放相机,并且指示灯仍然亮着。 现在浏览器支持重新协商,即从流中移除曲目并稍后添加它,但相当乏味。 –