2017-09-21 2 views
1

J'utilise Firefox v55.0.2écran Firefox part MediaStreamTrack à Twilio

Dans la documentation (https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia), après NavigatorUserMedia.getUserMedia() normalement successCallback i un MediaStream, mais dans mon cas j'ai LocalMediaStream.

J'ai besoin de MediaStreamTrack pour le twilio.

Ceci est mon code:

$scope.testShareFirefox = function() { 
    var p = navigator.mediaDevices.getUserMedia({ 
    video: { 
     mediaSource: 'screen', 
     width: 640, 
     height: 480 
    }, 
    }) 
    .then(function(stream) { 
    const screenLocalTrack = new twilio.Video.LocalVideoTrack(stream); 
    $scope.videoConf.room.localParticipant.addTrack(screenLocalTrack); 

    var video = document.createElement('video'); 
    $('#test-share-screen').append(video); 

    video.srcObject = stream; 
    video.play(); 
    }) 
    .catch(function (err) { 
    console.log(err); 
    }); 
}; 

Merci.

Répondre

1

J'ai trouvé la solution.

LocalMediaStream est l'héritage de MediaStream pour que nous puissions utiliser ".getTracks()"

C'est la solution de travail:

$scope.testShareFirefox = function() { 
    navigator.mediaDevices.getUserMedia({ 
    video: { 
     mediaSource: 'screen', 
     width: 640, 
     height: 480 
    }, 
    }) 
    .then(function(stream) { 
    stream.getTracks().forEach(function(track) { 
     $scope.videoConf.room.localParticipant.addTrack(track); 
    }); 

    var video = document.createElement('video'); 
    $('#test-share-screen').append(video); 

    video.srcObject = stream; 
    video.play(); 
    var trackElements = document.querySelectorAll("track"); 
    }) 
    .catch(function (err) { 
    console.log(err); 
    }); 
};