Merge pull request #3782 from virtuacoplenny/lenny/camera-as-ss

feat(screenshare): use camera as a screenshare source
This commit is contained in:
virtuacoplenny 2019-01-15 12:05:09 -08:00 committed by GitHub
commit 998db80db1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 0 deletions

View File

@ -1488,6 +1488,8 @@ export default {
const wasVideoMuted = this.isLocalVideoMuted(); const wasVideoMuted = this.isLocalVideoMuted();
return createLocalTracksF({ return createLocalTracksF({
desktopSharingSourceDevice: options.desktopSharingSources
? null : config._desktopSharingSourceDevice,
desktopSharingSources: options.desktopSharingSources, desktopSharingSources: options.desktopSharingSources,
devices: [ 'desktop' ], devices: [ 'desktop' ],
desktopSharingExtensionExternalInstallation: { desktopSharingExtensionExternalInstallation: {
@ -1645,6 +1647,7 @@ export default {
// Handling: // Handling:
// JitsiTrackErrors.PERMISSION_DENIED // JitsiTrackErrors.PERMISSION_DENIED
// JitsiTrackErrors.CHROME_EXTENSION_INSTALLATION_ERROR // JitsiTrackErrors.CHROME_EXTENSION_INSTALLATION_ERROR
// JitsiTrackErrors.CONSTRAINT_FAILED
// JitsiTrackErrors.GENERAL // JitsiTrackErrors.GENERAL
// and any other // and any other
let descriptionKey; let descriptionKey;
@ -1668,6 +1671,9 @@ export default {
descriptionKey = 'dialog.screenSharingPermissionDeniedError'; descriptionKey = 'dialog.screenSharingPermissionDeniedError';
titleKey = 'dialog.screenSharingFailedToInstallTitle'; titleKey = 'dialog.screenSharingFailedToInstallTitle';
} }
} else if (error.name === JitsiTrackErrors.CONSTRAINT_FAILED) {
descriptionKey = 'dialog.cameraConstraintFailedError';
titleKey = 'deviceError.cameraError';
} else { } else {
descriptionKey = 'dialog.screenSharingFailedToInstall'; descriptionKey = 'dialog.screenSharingFailedToInstall';
titleKey = 'dialog.screenSharingFailedToInstallTitle'; titleKey = 'dialog.screenSharingFailedToInstallTitle';

View File

@ -386,6 +386,13 @@ var config = {
// analyticsInterval: 60000, // analyticsInterval: 60000,
// } // }
// If set, will attempt to use the provided video input device label when
// triggering a screenshare, instead of proceeding through the normal flow
// for obtaining a desktop stream.
// NOTE: This option is experimental and is currently intended for internal
// use only.
// _desktopSharingSourceDevice: 'sample-id-or-label'
// List of undocumented settings used in jitsi-meet // List of undocumented settings used in jitsi-meet
/** /**
_immediateReloadThreshold _immediateReloadThreshold

View File

@ -17,6 +17,7 @@ declare var $: Object;
* @type Array * @type Array
*/ */
const WHITELISTED_KEYS = [ const WHITELISTED_KEYS = [
'_desktopSharingSourceDevice',
'_peerConnStatusOutOfLastNTimeout', '_peerConnStatusOutOfLastNTimeout',
'_peerConnStatusRtcMuteTimeout', '_peerConnStatusRtcMuteTimeout',
'abTesting', 'abTesting',

View File

@ -62,6 +62,8 @@ export function createLocalTracksF(
desktopSharingExtensionExternalInstallation: desktopSharingExtensionExternalInstallation:
options.desktopSharingExtensionExternalInstallation, options.desktopSharingExtensionExternalInstallation,
desktopSharingFrameRate, desktopSharingFrameRate,
desktopSharingSourceDevice:
options.desktopSharingSourceDevice,
desktopSharingSources: options.desktopSharingSources, desktopSharingSources: options.desktopSharingSources,
// Copy array to avoid mutations inside library. // Copy array to avoid mutations inside library.