diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/avatar-profile/avatar-profile.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/avatar-profile/avatar-profile.component.ts index cfbfc952..a45f1415 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/avatar-profile/avatar-profile.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/avatar-profile/avatar-profile.component.ts @@ -1,3 +1,4 @@ +import { animate, style, transition, trigger } from '@angular/animations'; import { Component, Input } from '@angular/core'; /** @@ -7,13 +8,19 @@ import { Component, Input } from '@angular/core'; @Component({ selector: 'ov-avatar-profile', template: ` -
+
{{ letter }}
`, - styleUrls: ['./avatar-profile.component.css'] + styleUrls: ['./avatar-profile.component.css'], + animations: [ + trigger('posterAnimation', [ + transition(':enter', [style({ opacity: 0 }), animate('600ms', style({ opacity: 1 }))]) + // transition(':leave', [animate(600, style({ backgroundColor: 'yellow' }))]), + ]) + ] }) export class AvatarProfileComponent { letter: string; diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/session/session.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/session/session.component.ts index d7882cb1..32e11e58 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/session/session.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/session/session.component.ts @@ -40,6 +40,7 @@ import { PanelService } from '../../services/panel/panel.service'; import { RecordingService } from '../../services/recording/recording.service'; import { TranslateService } from '../../services/translate/translate.service'; import { OpenViduAngularConfigService } from '../../services/config/openvidu-angular.config.service'; +import { PlatformService } from '../../services/platform/platform.service'; /** * @internal @@ -85,7 +86,8 @@ export class SessionComponent implements OnInit { protected layoutService: LayoutService, protected panelService: PanelService, private recordingService: RecordingService, - private translateService: TranslateService + private translateService: TranslateService, + private platformService: PlatformService ) { this.log = this.loggerSrv.get('SessionComponent'); } @@ -142,11 +144,11 @@ export class SessionComponent implements OnInit { this.onSessionCreated.emit(this.session); await this.connectToSession(); - // Workaround, firefox does not have audio when publisher join with muted camera - // if (this.platformService.isFirefox() && !this.participantService.hasCameraVideoActive()) { - // this.openviduService.publishVideo(this.participantService.getMyCameraPublisher(), true); - // this.openviduService.publishVideo(this.participantService.getMyCameraPublisher(), false); - // } + // ios devices appear with blank video. Muting and unmuting it fix this problem + if (this.platformService.isIos() && this.participantService.isMyCameraActive()) { + await this.openviduService.publishVideo(false); + await this.openviduService.publishVideo(true); + } } } diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.css b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.css index e724d090..b35a8ada 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.css +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/stream/stream.component.css @@ -41,7 +41,7 @@ #audio-wave-container { position: absolute; right: 0; - z-index: 1; + z-index: 2; padding: 5px; } diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/platform/platform.service.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/platform/platform.service.ts index 56820be3..4c6707d1 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/platform/platform.service.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/platform/platform.service.ts @@ -17,12 +17,12 @@ export class PlatformService { return /Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent); } - private isAndroid(): boolean { + isAndroid(): boolean { return /\b(\w*Android\w*)\b/.test(navigator.userAgent) && /\b(\w*Mobile\w*)\b/.test(navigator.userAgent); } - private isIos(): boolean { - return this.isIPhoneOrIPad(navigator?.userAgent) && this.isIOSWithSafari(navigator?.userAgent); + isIos(): boolean { + return this.isIPhoneOrIPad(navigator?.userAgent); } private isIPhoneOrIPad(userAgent): boolean { const isIPad = /\b(\w*Macintosh\w*)\b/.test(userAgent); @@ -33,6 +33,10 @@ export class PlatformService { return (isIPad || isIPhone) && isTouchable; } + private isSafariIos(): boolean { + return this.isIos() && this.isIOSWithSafari(navigator?.userAgent); + } + private isIOSWithSafari(userAgent): boolean { return ( /\b(\w*Apple\w*)\b/.test(navigator.vendor) &&