使用 getUserMedia 停止视频

Stop video with getUserMedia

我正在尝试了解有关流式网络摄像头的更多信息,但我一直无法停止播放视频我希望有人能帮助我停止播放视频

var videoDiv = $("#video"),
 vendorUrl = window.URL || window.webkitURL;
 navigator.getMedia =  navigator.getUserMedia ||
       navigator.webkitGetUserMedia ||
       navigator.mozGetUserMedia ||
       navigator.oGetUserMedia ||
       navigator.msGetUserMedia;

function captureWebcam(video, audio){
 navigator.getMedia({
  video: video,
  audio: audio
 }, function(stream){
  localStream = stream;
  videoDiv.attr("src", vendorUrl.createObjectURL(localStream))
 }, function(error){
  // An error occured
  // error.code
  console.log(error)
 }); 
}  
$("#stop").on("click", function(){

 videoDiv.attr("src", "") 
 //captureWebcam(false, false)
    // Stop the video
}); 
$("#start").on("click", function(){
 captureWebcam(true, false)
});
<video id="video" width="400" height="300"></video>
<button id="start">START!</button>
<button id="stop">STOP!</button>

您需要使用 getTrack() 才能停止直播。

var videoDiv = document.getElementById("video"),
    vendorUrl = window.URL || window.webkitURL;
    navigator.getMedia =    navigator.getUserMedia ||
                            navigator.webkitGetUserMedia ||
                            navigator.mozGetUserMedia ||
                            navigator.oGetUserMedia ||
                            navigator.msGetUserMedia;

var MediaStream;
function captureWebcam(video, audio){
    navigator.getMedia({
        video: video,
        audio: audio
    }, function(stream){
        videoDiv.src = vendorUrl.createObjectURL(stream);
        MediaStream = stream.getTracks()[0]; // create the stream tracker
    }, function(error){
        // An error occured
        // error.code
        console.log(error)
    }); 
}       
$("#stop").on("click", function(){
   // Stop the tracked stream
   MediaStream.stop()
}); 
$("#start").on("click", function(){
    captureWebcam(true, false)
});

还有fiddle给你看看