Skip to content
4 changes: 2 additions & 2 deletions lang/main-es.json
Original file line number Diff line number Diff line change
Expand Up @@ -954,8 +954,8 @@
"videoUnmuteBlockedTitle": "¡Desactivar cámara y compartir pantalla bloqueados!",
"viewLobby": "Ver lobby",
"waitingParticipants": "{{waitingParticipants}} personas",
"encryptionKeySyncFailed": "La sincronización de la clave de cifrado ha fallado. Se recomienda salir de la reunión y vuelva a unirse para restaurar la comunicación segura.",
"encryptionKeySyncFailedTitle": "Error de Sincronización de Cifrado",
"encryptionKeySyncFailed": "El establecimiento de la sesión segura ha fallado. Asegúrese de que todos los participantes tengan una conexión a Internet confiable.",
"encryptionKeySyncFailedTitle": "Error de Establecimiento de la Sesión",
"cryptoFailedTitle": "La operación criptográfica ha fallado",
"cryptoFailed": "La operación criptográfica ha fallado. No puede acceder al video ni al audio de la reunión. Se recomienda reiniciar el navegador. Si eres el organizador de la reunión, vuelva a crearla.",
"encryptionKeySyncRestored": "La sincronización de claves para el cifrado se ha restaurado con éxito. Su comunicación segura está ahora activa.",
Expand Down
4 changes: 2 additions & 2 deletions lang/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -1100,8 +1100,8 @@
"waitingVisitorsTitle": "The meeting is not live yet!",
"whiteboardLimitDescription": "Please save your progress, as the user limit will soon be reached and the whiteboard will close.",
"whiteboardLimitTitle": "Whiteboard usage",
"encryptionKeySyncFailed": "The encryption key synchronization has failed. It is recommended that you leave the meeting and rejoin to restore secure communication.",
"encryptionKeySyncFailedTitle": "Encryption Sync Failed",
"encryptionKeySyncFailed": "The secure session establishement has failed. Please ensure that all participants have a reliable internet connection.",
"encryptionKeySyncFailedTitle": "Session Establishment Failed",
"cryptoFailedTitle": "Cryptographic operation failed",
"cryptoFailed": "Cryptographic operation has failed. You cannot access video or audio of the meeting. It is recommended that you restart the browser. If you are the meeting organizer, recreate it.",
"encryptionKeySyncRestored": "The encryption key synchronization has been successfully restored. Your secure communication is now active.",
Expand Down
19 changes: 19 additions & 0 deletions modules/UI/videolayout/VideoContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -400,9 +400,13 @@ export class VideoContainer extends LargeContainer {
* @returns {void}
*/
positionRemoteStatusMessages() {
if (this.remoteConnectionMessage) {
this._positionParticipantStatus(this.remoteConnectionMessage);
}
if (this.remotePresenceMessage) {
this._positionParticipantStatus(this.remotePresenceMessage);
}
}

/**
* Modifies the position of the passed in jQuery object so it displays
Expand Down Expand Up @@ -615,6 +619,10 @@ export class VideoContainer extends LargeContainer {
* @param {boolean} show
*/
showAvatar(show) {
if (!this.avatar) {
logger.warn('Avatar not found, cannot update visibility');
return;
}
this.avatar.style.visibility = show ? 'visible' : 'hidden';
this.avatarDisplayed = show;

Expand All @@ -626,6 +634,12 @@ export class VideoContainer extends LargeContainer {
*/
show() {
return new Promise(resolve => {
if (!this.wrapperParent) {
logger.warn('Wrapper parent not found, cannot show');
resolve();
return;
}

this.wrapperParent.style.visibility = 'visible';
this.wrapperParent.classList.remove('animatedFadeOut');
this.wrapperParent.classList.add('animatedFadeIn');
Expand All @@ -646,6 +660,11 @@ export class VideoContainer extends LargeContainer {
this.showAvatar(false);

return new Promise(resolve => {
if (!this.wrapperParent) {
logger.warn('Wrapper parent not found, cannot hide');
resolve();
return;
}
this.wrapperParent.classList.remove('animatedFadeIn');
this.wrapperParent.classList.add('animatedFadeOut');
setTimeout(() => {
Expand Down
8 changes: 4 additions & 4 deletions react/features/base/media/components/AbstractAudio.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,10 @@ export default class AbstractAudio extends Component<IProps> {
* @returns {void}
*/
setSinkId(sinkId: string) {
this._audioElementImpl
&& typeof this._audioElementImpl.setSinkId === 'function'
&& this._audioElementImpl.setSinkId(sinkId)
.catch(error => logger.error('Error setting sink', error));
if (this._audioElementImpl && typeof this._audioElementImpl.setSinkId === 'function') {
this._audioElementImpl.setSinkId(sinkId)
.catch(error => logger.error(`Error setting sink ID ${sinkId}: ${error}`));
}
}

/**
Expand Down