|
@@ -107,6 +107,7 @@ import {
|
107
|
107
|
getLocalJitsiAudioTrack,
|
108
|
108
|
getLocalJitsiVideoTrack,
|
109
|
109
|
getLocalTracks,
|
|
110
|
+ getLocalVideoTrack,
|
110
|
111
|
isLocalCameraTrackMuted,
|
111
|
112
|
isLocalTrackMuted,
|
112
|
113
|
isUserInteractionRequiredForUnmute,
|
|
@@ -1549,6 +1550,8 @@ export default {
|
1549
|
1550
|
if (config.enableScreenshotCapture) {
|
1550
|
1551
|
APP.store.dispatch(toggleScreenshotCaptureSummary(false));
|
1551
|
1552
|
}
|
|
1553
|
+ const tracks = APP.store.getState()['features/base/tracks'];
|
|
1554
|
+ const timestamp = getLocalVideoTrack(tracks)?.timestamp ?? 0;
|
1552
|
1555
|
|
1553
|
1556
|
// It can happen that presenter GUM is in progress while screensharing is being turned off. Here it needs to
|
1554
|
1557
|
// wait for that GUM to be resolved in order to prevent leaking the presenter track(this.localPresenterVideo
|
|
@@ -1610,7 +1613,8 @@ export default {
|
1610
|
1613
|
return promise.then(
|
1611
|
1614
|
() => {
|
1612
|
1615
|
this.videoSwitchInProgress = false;
|
1613
|
|
- sendAnalytics(createScreenSharingEvent('stopped'));
|
|
1616
|
+ sendAnalytics(createScreenSharingEvent('stopped',
|
|
1617
|
+ timestamp === 0 ? null : (Date.now() / 1000) - timestamp));
|
1614
|
1618
|
logger.info('Screen sharing stopped.');
|
1615
|
1619
|
},
|
1616
|
1620
|
error => {
|