| 1234567891011121314151617181920212223242526272829303132333435363738 |
- // @ts-expect-error
- import VideoLayout from '../../../modules/UI/videolayout/VideoLayout';
- import StateListenerRegistry from '../base/redux/StateListenerRegistry';
- import { getVideoTrackByParticipant } from '../base/tracks/functions.web';
-
- import { getLargeVideoParticipant } from './functions';
-
- /**
- * Updates the on stage participant video.
- */
- StateListenerRegistry.register(
- /* selector */ state => state['features/large-video'].participantId,
- /* listener */ participantId => {
- VideoLayout.updateLargeVideo(participantId, true);
- }
- );
-
- /**
- * Schedules a large video update when the streaming status of the track associated with the large video changes.
- */
- StateListenerRegistry.register(
- /* selector */ state => {
- const largeVideoParticipant = getLargeVideoParticipant(state);
- const videoTrack = getVideoTrackByParticipant(state, largeVideoParticipant);
-
- return {
- participantId: largeVideoParticipant?.id,
- streamingStatus: videoTrack?.streamingStatus
- };
- },
- /* listener */ ({ participantId, streamingStatus }, previousState: any = {}) => {
- if (streamingStatus !== previousState.streamingStatus) {
- VideoLayout.updateLargeVideo(participantId, true);
- }
- }, {
- deepEquals: true
- }
- );
|