Javascript Firefox屏幕共享MediaStreamTrack至Twilio
我使用FirefoxV55.0.2 在文档()中,在NavigatorUserMedia.getUserMedia()之后,通常在successCallback中,我有一个MediaStream,但在我的例子中,我有LocalMediaStream 我需要MediaStreamTrack在twilio发布 这是我的代码:Javascript Firefox屏幕共享MediaStreamTrack至Twilio,javascript,firefox,twilio,screensharing,Javascript,Firefox,Twilio,Screensharing,我使用FirefoxV55.0.2 在文档()中,在NavigatorUserMedia.getUserMedia()之后,通常在successCallback中,我有一个MediaStream,但在我的例子中,我有LocalMediaStream 我需要MediaStreamTrack在twilio发布 这是我的代码: $scope.testShareFirefox = function () { var p = navigator.mediaDevices.getUserMedia({
$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);
});
};
谢谢。我找到了解决办法
LocalMediaStream是MediaStream的继承,因此我们可以使用“.getTracks()”
这就是工作解决方案:
$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);
});
};