fix (external-api): fix notify video mute changed when presenting
- small refactor to trigger `notifyVideoMutedStatusChanged` correctly when participant is presenting
This commit is contained in:
parent
428c3cef38
commit
b998d80ee3
|
@ -739,7 +739,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tracks.find(t => t.isVideoTrack())) {
|
if (!tracks.find(t => t.isVideoTrack())) {
|
||||||
this.setVideoMuteStatus(true);
|
this.setVideoMuteStatus();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.iAmRecorder) {
|
if (config.iAmRecorder) {
|
||||||
|
@ -993,7 +993,7 @@ export default {
|
||||||
// This will only modify base/media.video.muted which is then synced
|
// This will only modify base/media.video.muted which is then synced
|
||||||
// up with the track at the end of local tracks initialization.
|
// up with the track at the end of local tracks initialization.
|
||||||
muteLocalVideo(mute);
|
muteLocalVideo(mute);
|
||||||
this.setVideoMuteStatus(mute);
|
this.setVideoMuteStatus();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
} else if (this.isLocalVideoMuted() === mute) {
|
} else if (this.isLocalVideoMuted() === mute) {
|
||||||
|
@ -1402,7 +1402,7 @@ export default {
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.localVideo = newTrack;
|
this.localVideo = newTrack;
|
||||||
this._setSharingScreen(newTrack);
|
this._setSharingScreen(newTrack);
|
||||||
this.setVideoMuteStatus(this.isLocalVideoMuted());
|
this.setVideoMuteStatus();
|
||||||
})
|
})
|
||||||
.then(resolve)
|
.then(resolve)
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
@ -1821,7 +1821,7 @@ export default {
|
||||||
try {
|
try {
|
||||||
await this.localVideo.setEffect(effect);
|
await this.localVideo.setEffect(effect);
|
||||||
APP.store.dispatch(setVideoMuted(mute, MEDIA_TYPE.PRESENTER));
|
APP.store.dispatch(setVideoMuted(mute, MEDIA_TYPE.PRESENTER));
|
||||||
this.setVideoMuteStatus(mute);
|
this.setVideoMuteStatus();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error('Failed to apply the Presenter effect', err);
|
logger.error('Failed to apply the Presenter effect', err);
|
||||||
}
|
}
|
||||||
|
@ -2303,7 +2303,7 @@ export default {
|
||||||
return this._createPresenterStreamEffect(height, cameraDeviceId)
|
return this._createPresenterStreamEffect(height, cameraDeviceId)
|
||||||
.then(effect => this.localVideo.setEffect(effect))
|
.then(effect => this.localVideo.setEffect(effect))
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.setVideoMuteStatus(false);
|
this.setVideoMuteStatus();
|
||||||
logger.log('Switched local video device while screen sharing and the video is unmuted');
|
logger.log('Switched local video device while screen sharing and the video is unmuted');
|
||||||
this._updateVideoDeviceId();
|
this._updateVideoDeviceId();
|
||||||
})
|
})
|
||||||
|
@ -3105,12 +3105,9 @@ export default {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the video muted status.
|
* Sets the video muted status.
|
||||||
*
|
|
||||||
* @param {boolean} muted - New muted status.
|
|
||||||
*/
|
*/
|
||||||
setVideoMuteStatus(muted) {
|
setVideoMuteStatus() {
|
||||||
APP.UI.setVideoMuted(this.getMyUserId());
|
APP.UI.setVideoMuted(this.getMyUserId());
|
||||||
APP.API.notifyVideoMutedStatusChanged(muted);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -159,7 +159,7 @@ MiddlewareRegistry.register(store => next => action => {
|
||||||
if (jitsiTrack.type === MEDIA_TYPE.PRESENTER) {
|
if (jitsiTrack.type === MEDIA_TYPE.PRESENTER) {
|
||||||
APP.conference.mutePresenter(muted);
|
APP.conference.mutePresenter(muted);
|
||||||
} else if (jitsiTrack.isLocal()) {
|
} else if (jitsiTrack.isLocal()) {
|
||||||
APP.conference.setVideoMuteStatus(muted);
|
APP.conference.setVideoMuteStatus();
|
||||||
} else {
|
} else {
|
||||||
APP.UI.setVideoMuted(participantID);
|
APP.UI.setVideoMuted(participantID);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ import _ from 'lodash';
|
||||||
|
|
||||||
import { StateListenerRegistry } from '../../base/redux';
|
import { StateListenerRegistry } from '../../base/redux';
|
||||||
|
|
||||||
|
import { isLocalCameraTrackMuted } from './functions';
|
||||||
|
|
||||||
declare var APP: Object;
|
declare var APP: Object;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,3 +24,20 @@ StateListenerRegistry.register(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notifies when the local video mute state changes.
|
||||||
|
*/
|
||||||
|
StateListenerRegistry.register(
|
||||||
|
/* selector */ state => isLocalCameraTrackMuted(state['features/base/tracks']),
|
||||||
|
/* listener */ (muted, store, previousMuted) => {
|
||||||
|
if (typeof APP !== 'object') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (muted !== previousMuted) {
|
||||||
|
APP.API.notifyVideoMutedStatusChanged(muted);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
Loading…
Reference in New Issue