2017-09-21 3 views
1

Ich benutze Firefox v55.0.2Firefox Bildschirm Aktie MediaStreamTrack zu Twilio

In Dokumentation (https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getUserMedia) nach NavigatorUserMedia.getUserMedia(), die normalerweise in successCallback habe ich ein Mediastream, aber in meinem Fall habe ich LocalMediaStream.

Ich brauche MediaStreamTrack, um es bei twilio zu geben.

Dies ist mein 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); 
    }); 
}; 

Danke.

Antwort

1

Ich fand die Lösung.

LocalMediaStream ist Vererbung von Mediastream, so dass wir verwenden können ".getTracks()"

Dies ist die Arbeit Lösung:

$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); 
    }); 
};