2016-04-26 15 views
0

Ich versuche die getUserMedia-Methode zu verwenden, um auf meine Webcam zuzugreifen und mein Gesicht mit clmtrackr (https://github.com/auduno/clmtrackr) zu verfolgen. Vor ein paar Wochen funktionierte es, aber seit Chrome Update auf V50 habe ich Probleme, es verwendet das Ersatzvideo, anstatt meine Webcam anzurufen.getUserMedia funktioniert nicht in Chrome v50.0.2661.86

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; 

// check for camerasupport 
if (navigator.getUserMedia) { 

    var videoSelector = {video : true}; 
    if (window.navigator.appVersion.match(/Chrome\/(.*?) /)) { 
     var chromeVersion = parseInt(window.navigator.appVersion.match(/Chrome\/(\d+)\./)[1], 10); 
     if (chromeVersion < 20) { 
      videoSelector = "video"; 
     } 
    }; 

    navigator.getUserMedia(videoSelector, function(stream) { 
     if (video.mozCaptureStream) { 
      video.mozSrcObject = stream; 
     } else { 
      video.src = (window.URL && window.URL.createObjectURL(stream)) || stream; 
     } 

     video.play(); 
    }, function() { 
     //it uses this alt video 
     insertAltVideo(video); 
     alert("There was some problem trying to fetch video from your webcam, using a fallback video instead."); 
    }); 
} else { 
    insertAltVideo(video); 
    alert("Your browser does not seem to support getUserMedia, using a fallback video instead."); 
} 

PS: Es funktioniert, wie ich auf Firefox

Fortschritt in

Dank wollen

Antwort

1

navigator.getUserMedia nicht mehr funktioniert in Chrome (es gibt undefined), verwenden Sie die neuere MediaDevices Schnittstelle:

navigator.mediaDevices.getUserMedia(constraints) 
    .then(function(stream) { 
    var videoTracks = stream.getVideoTracks(); 
    console.log('Got stream with constraints:', constraints); 
    console.log('Using video device: ' + videoTracks[0].label); 
    stream.onended = function() { 
     console.log('Stream ended'); 
    }; 
    window.stream = stream; // make variable available to console 
    video.srcObject = stream; 
    }) 
    .catch(function(error) { 
    // ... 
    } 

Weitere Informationen: