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 Promise.all([
|
||||
this.createLocalTracks('audio', 'video'),
|
||||
this.createLocalTracks('audio', 'video').catch(
|
||||
() => {return [];}),
|
||||
connect()
|
||||
]);
|
||||
}).then(([tracks, con]) => {
|
||||
|
@ -176,7 +177,7 @@ export default {
|
|||
}).catch(function (err) {
|
||||
console.error('failed to create local tracks', ...devices, err);
|
||||
APP.statistics.onGetUserMediaFailed(err);
|
||||
return [];
|
||||
return Promise.reject(err);
|
||||
});
|
||||
},
|
||||
isLocalId (id) {
|
||||
|
@ -645,6 +646,11 @@ export default {
|
|||
APP.UI.updateDesktopSharingButtons(isSharingScreen);
|
||||
});
|
||||
|
||||
APP.desktopsharing.addListener(DSEvents.FIREFOX_EXTENSION_NEEDED,
|
||||
(url) => {
|
||||
APP.UI.showExtensionRequiredDialog(url);
|
||||
});
|
||||
|
||||
APP.desktopsharing.addListener(DSEvents.NEW_STREAM_CREATED,
|
||||
(track, callback) => {
|
||||
const localCallback = (newTrack) => {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -802,4 +802,13 @@ UI.getLargeVideoID = function () {
|
|||
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;
|
||||
|
|
|
@ -194,7 +194,7 @@ LocalVideo.prototype.changeVideo = function (stream) {
|
|||
let endedHandler = () => {
|
||||
localVideo = $('#' + localVideo.id)[0];
|
||||
localVideoContainer.removeChild(localVideo);
|
||||
self.VideoLayout.updateRemovedVideo(self.id);
|
||||
this.VideoLayout.updateRemovedVideo(this.id);
|
||||
stream.off(TrackEvents.TRACK_STOPPED, endedHandler);
|
||||
};
|
||||
stream.on(TrackEvents.TRACK_STOPPED, endedHandler);
|
||||
|
|
|
@ -97,17 +97,18 @@ module.exports = {
|
|||
} else {
|
||||
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 (type === 'desktop') {
|
||||
getDesktopStreamFailed();
|
||||
} else {
|
||||
getVideoStreamFailed();
|
||||
}
|
||||
|
||||
fail();
|
||||
return;
|
||||
}
|
||||
|
||||
let stream = tracks[0];
|
||||
|
||||
// We now use screen stream
|
||||
|
@ -115,13 +116,16 @@ module.exports = {
|
|||
if (isUsingScreenStream) {
|
||||
stream.on(TrackEvents.TRACK_STOPPED, onEndedHandler);
|
||||
}
|
||||
|
||||
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