feat(external_api): Add cmd for selecting a user to be displayed in large video
This commit is contained in:
parent
9815b633fc
commit
b6792db65f
|
@ -21,6 +21,7 @@ import {
|
||||||
import { isEnabled as isDropboxEnabled } from '../../react/features/dropbox';
|
import { isEnabled as isDropboxEnabled } from '../../react/features/dropbox';
|
||||||
import { toggleE2EE } from '../../react/features/e2ee/actions';
|
import { toggleE2EE } from '../../react/features/e2ee/actions';
|
||||||
import { invite } from '../../react/features/invite';
|
import { invite } from '../../react/features/invite';
|
||||||
|
import { selectParticipantInLargeVideo } from '../../react/features/large-video/actions';
|
||||||
import { toggleLobbyMode } from '../../react/features/lobby/actions.web';
|
import { toggleLobbyMode } from '../../react/features/lobby/actions.web';
|
||||||
import { RECORDING_TYPES } from '../../react/features/recording/constants';
|
import { RECORDING_TYPES } from '../../react/features/recording/constants';
|
||||||
import { getActiveSession } from '../../react/features/recording/functions';
|
import { getActiveSession } from '../../react/features/recording/functions';
|
||||||
|
@ -123,6 +124,11 @@ function initCommands() {
|
||||||
|
|
||||||
APP.store.dispatch(sendTones(tones, duration, pause));
|
APP.store.dispatch(sendTones(tones, duration, pause));
|
||||||
},
|
},
|
||||||
|
'set-large-video-participant': participantId => {
|
||||||
|
logger.debug('Set large video participant command received');
|
||||||
|
sendAnalytics(createApiEvent('largevideo.participant.changed'));
|
||||||
|
APP.store.dispatch(selectParticipantInLargeVideo(participantId));
|
||||||
|
},
|
||||||
'subject': subject => {
|
'subject': subject => {
|
||||||
sendAnalytics(createApiEvent('subject.changed'));
|
sendAnalytics(createApiEvent('subject.changed'));
|
||||||
APP.store.dispatch(setSubject(subject));
|
APP.store.dispatch(setSubject(subject));
|
||||||
|
@ -710,8 +716,7 @@ class API {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify external application (if API is enabled) that user changed their
|
* Notify external application (if API is enabled) that local user has left the conference.
|
||||||
* nickname.
|
|
||||||
*
|
*
|
||||||
* @param {string} roomName - User id.
|
* @param {string} roomName - User id.
|
||||||
* @returns {void}
|
* @returns {void}
|
||||||
|
|
|
@ -37,6 +37,7 @@ const commands = {
|
||||||
password: 'password',
|
password: 'password',
|
||||||
sendEndpointTextMessage: 'send-endpoint-text-message',
|
sendEndpointTextMessage: 'send-endpoint-text-message',
|
||||||
sendTones: 'send-tones',
|
sendTones: 'send-tones',
|
||||||
|
setLargeVideoParticipant: 'set-large-video-participant',
|
||||||
setVideoQuality: 'set-video-quality',
|
setVideoQuality: 'set-video-quality',
|
||||||
startRecording: 'start-recording',
|
startRecording: 'start-recording',
|
||||||
stopRecording: 'stop-recording',
|
stopRecording: 'stop-recording',
|
||||||
|
|
|
@ -49,16 +49,19 @@ export function selectParticipant() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Action to select the participant to be displayed in LargeVideo based on a
|
* Action to select the participant to be displayed in LargeVideo based on the
|
||||||
* variety of factors: If there is a dominant or pinned speaker, or if there are
|
* participant id provided. If a partcipant id is not provided, the LargeVideo
|
||||||
* remote tracks, etc.
|
* participant will be selected based on a variety of factors: If there is a
|
||||||
|
* dominant or pinned speaker, or if there are remote tracks, etc.
|
||||||
*
|
*
|
||||||
|
* @param {string} participant - The participant id of the user that needs to be
|
||||||
|
* displayed on the large video.
|
||||||
* @returns {Function}
|
* @returns {Function}
|
||||||
*/
|
*/
|
||||||
export function selectParticipantInLargeVideo() {
|
export function selectParticipantInLargeVideo(participant: ?string) {
|
||||||
return (dispatch: Dispatch<any>, getState: Function) => {
|
return (dispatch: Dispatch<any>, getState: Function) => {
|
||||||
const state = getState();
|
const state = getState();
|
||||||
const participantId = _electParticipantInLargeVideo(state);
|
const participantId = participant ?? _electParticipantInLargeVideo(state);
|
||||||
const largeVideo = state['features/large-video'];
|
const largeVideo = state['features/large-video'];
|
||||||
|
|
||||||
if (participantId !== largeVideo.participantId) {
|
if (participantId !== largeVideo.participantId) {
|
||||||
|
|
Loading…
Reference in New Issue