commit
a4272149f8
|
|
@ -52,26 +52,36 @@ var config =
|
|||
noiseSuppression : true,
|
||||
sampleSize : 16
|
||||
},
|
||||
background : 'images/background.jpg',
|
||||
defaultLayout : 'democratic', // democratic, filmstrip
|
||||
|
||||
/**
|
||||
* Set the auto mute / Push To Talk threshold
|
||||
* default value is 4
|
||||
*
|
||||
* Set it to 0 to disable auto mute functionality,
|
||||
* but use it with caution
|
||||
* full mesh audio strongly decrease room capacity!
|
||||
*/
|
||||
autoMuteThreshold : 4,
|
||||
background : 'images/background.jpg',
|
||||
defaultLayout : 'democratic', // democratic, filmstrip
|
||||
// If true, will show media control buttons in separate
|
||||
// control bar, not in the ME container.
|
||||
buttonControlBar : false,
|
||||
buttonControlBar : false,
|
||||
// If false, will push videos away to make room for side
|
||||
// drawer. If true, will overlay side drawer over videos
|
||||
drawerOverlayed : true,
|
||||
drawerOverlayed : true,
|
||||
// Timeout for autohiding topbar and button control bar
|
||||
hideTimeout : 3000,
|
||||
lastN : 4,
|
||||
mobileLastN : 1,
|
||||
hideTimeout : 3000,
|
||||
lastN : 4,
|
||||
mobileLastN : 1,
|
||||
// Highest number of speakers user can select
|
||||
maxLastN : 5,
|
||||
maxLastN : 5,
|
||||
// If truthy, users can NOT change number of speakers visible
|
||||
lockLastN : false,
|
||||
lockLastN : false,
|
||||
// Add file and uncomment for adding logo to appbar
|
||||
// logo : 'images/logo.svg',
|
||||
title : 'Multiparty meeting',
|
||||
theme :
|
||||
title : 'Multiparty meeting',
|
||||
theme :
|
||||
{
|
||||
palette :
|
||||
{
|
||||
|
|
|
|||
|
|
@ -304,12 +304,18 @@ export default class RoomClient
|
|||
{
|
||||
case String.fromCharCode(37):
|
||||
{
|
||||
this._spotlights.setPrevAsSelected();
|
||||
const newPeerId = this._spotlights.getPrevAsSelected(
|
||||
store.getState().room.selectedPeerId);
|
||||
|
||||
if (newPeerId) this.setSelectedPeer(newPeerId);
|
||||
break;
|
||||
}
|
||||
case String.fromCharCode(39):
|
||||
{
|
||||
this._spotlights.setNextAsSelected();
|
||||
const newPeerId = this._spotlights.getNextAsSelected(
|
||||
store.getState().room.selectedPeerId);
|
||||
|
||||
if (newPeerId) this.setSelectedPeer(newPeerId);
|
||||
break;
|
||||
}
|
||||
case 'A': // Activate advanced mode
|
||||
|
|
@ -2970,7 +2976,9 @@ export default class RoomClient
|
|||
if (!this._muted)
|
||||
{
|
||||
await this.enableMic();
|
||||
if (peers.length > 4)
|
||||
const { autoMuteThreshold } = store.getState().settings;
|
||||
|
||||
if (autoMuteThreshold && peers.length > autoMuteThreshold)
|
||||
this.muteMic();
|
||||
}
|
||||
|
||||
|
|
@ -3616,6 +3624,8 @@ export default class RoomClient
|
|||
|
||||
this._screenSharingProducer = null;
|
||||
|
||||
this._screenSharing.stop();
|
||||
|
||||
store.dispatch(meActions.setScreenShareInProgress(false));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,15 +46,11 @@ export default class Spotlights extends EventEmitter
|
|||
}
|
||||
}
|
||||
|
||||
setNextAsSelected()
|
||||
getNextAsSelected(peerId)
|
||||
{
|
||||
let peerId = null;
|
||||
let newSelectedPeer = null;
|
||||
|
||||
if (this._selectedSpotlights.length > 0)
|
||||
{
|
||||
peerId = this._selectedSpotlights[0];
|
||||
}
|
||||
else if (this._unmutablePeerList.length > 0)
|
||||
if (peerId == null && this._unmutablePeerList.length > 0)
|
||||
{
|
||||
peerId = this._unmutablePeerList[0];
|
||||
}
|
||||
|
|
@ -66,37 +62,29 @@ export default class Spotlights extends EventEmitter
|
|||
let index = oldIndex;
|
||||
|
||||
index++;
|
||||
do
|
||||
for (let i = 0; i < this._unmutablePeerList.length; i++)
|
||||
{
|
||||
if (index >= this._unmutablePeerList.length)
|
||||
{
|
||||
index = 0;
|
||||
}
|
||||
const newSelectedPeer = this._unmutablePeerList[index];
|
||||
|
||||
newSelectedPeer = this._unmutablePeerList[index];
|
||||
if (!this._currentSpotlights.includes(newSelectedPeer))
|
||||
{
|
||||
this.setPeerSpotlight(newSelectedPeer);
|
||||
break;
|
||||
}
|
||||
index++;
|
||||
if (index === oldIndex)
|
||||
{
|
||||
break;
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
}
|
||||
|
||||
return newSelectedPeer;
|
||||
}
|
||||
|
||||
setPrevAsSelected()
|
||||
getPrevAsSelected(peerId)
|
||||
{
|
||||
let peerId = null;
|
||||
let newSelectedPeer = null;
|
||||
|
||||
if (this._selectedSpotlights.length > 0)
|
||||
{
|
||||
peerId = this._selectedSpotlights[0];
|
||||
}
|
||||
else if (this._unmutablePeerList.length > 0)
|
||||
if (peerId == null && this._unmutablePeerList.length > 0)
|
||||
{
|
||||
peerId = this._unmutablePeerList[0];
|
||||
}
|
||||
|
|
@ -108,26 +96,22 @@ export default class Spotlights extends EventEmitter
|
|||
let index = oldIndex;
|
||||
|
||||
index--;
|
||||
do
|
||||
for (let i = 0; i < this._unmutablePeerList.length; i++)
|
||||
{
|
||||
if (index < 0)
|
||||
{
|
||||
index = this._unmutablePeerList.length - 1;
|
||||
}
|
||||
const newSelectedPeer = this._unmutablePeerList[index];
|
||||
|
||||
newSelectedPeer = this._unmutablePeerList[index];
|
||||
if (!this._currentSpotlights.includes(newSelectedPeer))
|
||||
{
|
||||
this.setPeerSpotlight(newSelectedPeer);
|
||||
break;
|
||||
}
|
||||
index--;
|
||||
if (index === oldIndex)
|
||||
{
|
||||
break;
|
||||
}
|
||||
} while (true);
|
||||
}
|
||||
}
|
||||
|
||||
return newSelectedPeer;
|
||||
}
|
||||
|
||||
setPeerSpotlight(peerId)
|
||||
|
|
|
|||
|
|
@ -284,6 +284,25 @@ const Me = (props) =>
|
|||
defaultMessage : 'Start screen sharing'
|
||||
});
|
||||
}
|
||||
const [
|
||||
screenShareTooltipOpen,
|
||||
screenShareTooltipSetOpen
|
||||
] = React.useState(false);
|
||||
|
||||
const screenShareTooltipHandleClose = () =>
|
||||
{
|
||||
screenShareTooltipSetOpen(false);
|
||||
};
|
||||
|
||||
const screenShareTooltipHandleOpen = () =>
|
||||
{
|
||||
screenShareTooltipSetOpen(true);
|
||||
};
|
||||
|
||||
if (screenState === 'off' && me.screenShareInProgress && screenShareTooltipOpen)
|
||||
{
|
||||
screenShareTooltipHandleClose();
|
||||
}
|
||||
|
||||
const spacingStyle =
|
||||
{
|
||||
|
|
@ -511,7 +530,11 @@ const Me = (props) =>
|
|||
}
|
||||
</Tooltip>
|
||||
{ me.browser.platform !== 'mobile' &&
|
||||
<Tooltip title={screenTip} placement='left'>
|
||||
<Tooltip open={screenShareTooltipOpen}
|
||||
onClose={screenShareTooltipHandleClose}
|
||||
onOpen={screenShareTooltipHandleOpen}
|
||||
title={screenTip} placement='left'
|
||||
>
|
||||
{ smallContainer ?
|
||||
<div>
|
||||
<IconButton
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ const initialState =
|
|||
notificationSounds : true,
|
||||
buttonControlBar : window.config.buttonControlBar || false,
|
||||
drawerOverlayed : window.config.drawerOverlayed || true,
|
||||
autoMuteThreshold : window.config.autoMuteThreshold || 4,
|
||||
...window.config.defaultAudio
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue