Fixes desktop streaming for FF
This commit is contained in:
parent
27d509332a
commit
8787723330
|
@ -153,7 +153,8 @@ export default {
|
||||||
|
|
||||||
return JitsiMeetJS.init(config).then(() => {
|
return JitsiMeetJS.init(config).then(() => {
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
this.createLocalTracks('audio', 'video'),
|
this.createLocalTracks('audio', 'video').catch(
|
||||||
|
() => {return [];}),
|
||||||
connect()
|
connect()
|
||||||
]);
|
]);
|
||||||
}).then(([tracks, con]) => {
|
}).then(([tracks, con]) => {
|
||||||
|
@ -176,7 +177,7 @@ export default {
|
||||||
}).catch(function (err) {
|
}).catch(function (err) {
|
||||||
console.error('failed to create local tracks', ...devices, err);
|
console.error('failed to create local tracks', ...devices, err);
|
||||||
APP.statistics.onGetUserMediaFailed(err);
|
APP.statistics.onGetUserMediaFailed(err);
|
||||||
return [];
|
return Promise.reject(err);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
isLocalId (id) {
|
isLocalId (id) {
|
||||||
|
@ -645,6 +646,11 @@ export default {
|
||||||
APP.UI.updateDesktopSharingButtons(isSharingScreen);
|
APP.UI.updateDesktopSharingButtons(isSharingScreen);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
APP.desktopsharing.addListener(DSEvents.FIREFOX_EXTENSION_NEEDED,
|
||||||
|
(url) => {
|
||||||
|
APP.UI.showExtensionRequiredDialog(url);
|
||||||
|
});
|
||||||
|
|
||||||
APP.desktopsharing.addListener(DSEvents.NEW_STREAM_CREATED,
|
APP.desktopsharing.addListener(DSEvents.NEW_STREAM_CREATED,
|
||||||
(track, callback) => {
|
(track, callback) => {
|
||||||
const localCallback = (newTrack) => {
|
const localCallback = (newTrack) => {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -802,4 +802,13 @@ UI.getLargeVideoID = function () {
|
||||||
return VideoLayout.getLargeVideoID();
|
return VideoLayout.getLargeVideoID();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
UI.showExtensionRequiredDialog = function (url) {
|
||||||
|
APP.UI.messageHandler.openMessageDialog(
|
||||||
|
"dialog.extensionRequired",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
APP.translation.generateTranslationHTML(
|
||||||
|
"dialog.firefoxExtensionPrompt", {url: url}));
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = UI;
|
module.exports = UI;
|
||||||
|
|
|
@ -194,7 +194,7 @@ LocalVideo.prototype.changeVideo = function (stream) {
|
||||||
let endedHandler = () => {
|
let endedHandler = () => {
|
||||||
localVideo = $('#' + localVideo.id)[0];
|
localVideo = $('#' + localVideo.id)[0];
|
||||||
localVideoContainer.removeChild(localVideo);
|
localVideoContainer.removeChild(localVideo);
|
||||||
self.VideoLayout.updateRemovedVideo(self.id);
|
this.VideoLayout.updateRemovedVideo(this.id);
|
||||||
stream.off(TrackEvents.TRACK_STOPPED, endedHandler);
|
stream.off(TrackEvents.TRACK_STOPPED, endedHandler);
|
||||||
};
|
};
|
||||||
stream.on(TrackEvents.TRACK_STOPPED, endedHandler);
|
stream.on(TrackEvents.TRACK_STOPPED, endedHandler);
|
||||||
|
|
|
@ -97,17 +97,18 @@ module.exports = {
|
||||||
} else {
|
} else {
|
||||||
type = "video";
|
type = "video";
|
||||||
}
|
}
|
||||||
APP.conference.createLocalTracks(type).then(function (tracks) {
|
var fail = () => {
|
||||||
|
if (type === 'desktop') {
|
||||||
|
getDesktopStreamFailed();
|
||||||
|
} else {
|
||||||
|
getVideoStreamFailed();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
APP.conference.createLocalTracks(type).then((tracks) => {
|
||||||
if (!tracks.length) {
|
if (!tracks.length) {
|
||||||
if (type === 'desktop') {
|
fail();
|
||||||
getDesktopStreamFailed();
|
|
||||||
} else {
|
|
||||||
getVideoStreamFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let stream = tracks[0];
|
let stream = tracks[0];
|
||||||
|
|
||||||
// We now use screen stream
|
// We now use screen stream
|
||||||
|
@ -115,13 +116,16 @@ module.exports = {
|
||||||
if (isUsingScreenStream) {
|
if (isUsingScreenStream) {
|
||||||
stream.on(TrackEvents.TRACK_STOPPED, onEndedHandler);
|
stream.on(TrackEvents.TRACK_STOPPED, onEndedHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
newStreamCreated(stream);
|
newStreamCreated(stream);
|
||||||
|
}).catch((error) => {
|
||||||
|
if(error === JitsiMeetJS.errors.track.FIREFOX_EXTENSION_NEEDED)
|
||||||
|
{
|
||||||
|
eventEmitter.emit(
|
||||||
|
DSEvents.FIREFOX_EXTENSION_NEEDED,
|
||||||
|
config.desktopSharingFirefoxExtensionURL)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fail();
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
/*
|
|
||||||
* Exports the event emitter to allow use by ScreenObtainer. Not for outside
|
|
||||||
* use.
|
|
||||||
*/
|
|
||||||
eventEmitter: eventEmitter
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue