From 421869d48ea0e92d5d6fcdc39e7a4b3e64a0ef77 Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Wed, 22 Feb 2023 13:07:47 +0100 Subject: [PATCH] openvidu-components: Refactored recording and broadcasting services --- .../components/session/session.component.ts | 5 ++--- .../broadcasting/broadcasting.service.ts | 22 +++++++++++++------ .../services/recording/recording.service.ts | 9 +++----- 3 files changed, 20 insertions(+), 16 deletions(-) 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 daa6d532..d48f3270 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 @@ -31,7 +31,6 @@ import { VideoType } from '../../models/video-type.model'; import { animate, style, transition, trigger } from '@angular/animations'; import { MatDrawerContainer, MatSidenav } from '@angular/material/sidenav'; import { skip, Subscription } from 'rxjs'; -import { BroadcastingStatus } from '../../models/broadcasting.model'; import { SidenavMode } from '../../models/layout.model'; import { PanelEvent, PanelType } from '../../models/panel.model'; import { Signal } from '../../models/signal.model'; @@ -443,8 +442,8 @@ export class SessionComponent implements OnInit, OnDestroy { } private subscribeToBroadcastingEvents() { - this.session.on('broadcastStarted', () => this.broadcastingService.updateStatus(BroadcastingStatus.STARTED)); - this.session.on('broadcastStopped', () => this.broadcastingService.updateStatus(BroadcastingStatus.STOPPED)); + this.session.on('broadcastStarted', () => this.broadcastingService.startBroadcasting()); + this.session.on('broadcastStopped', () => this.broadcastingService.stopBroadcasting()); } private startUpdateLayoutInterval() { diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/broadcasting/broadcasting.service.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/broadcasting/broadcasting.service.ts index 419df1d0..dbeb9cce 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/broadcasting/broadcasting.service.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/broadcasting/broadcasting.service.ts @@ -15,23 +15,31 @@ export class BroadcastingService { private broadcastingTimeInterval: NodeJS.Timer; private broadcastingStatus = >new BehaviorSubject(undefined); + /** + * @internal + */ constructor() { this.broadcastingStatusObs = this.broadcastingStatus.asObservable(); } /** - * @internal - * @param status + * Update the broadcasting status. This method is used by the OpenVidu Angular library to update the broadcasting status. + * @param status {@link BroadcastingStatus} */ updateStatus(status: BroadcastingStatus) { - if (status === BroadcastingStatus.STARTED) { - this.startBroadcastingTime(); - } else { - this.stopBroadcastingTime(); - } this.broadcastingStatus.next({ status, time: this.broadcastingTime }); } + startBroadcasting() { + this.startBroadcastingTime(); + this.updateStatus(BroadcastingStatus.STARTED); + } + + stopBroadcasting() { + this.stopBroadcastingTime(); + this.updateStatus(BroadcastingStatus.STOPPED); + } + private startBroadcastingTime() { this.broadcastingTime = new Date(); this.broadcastingTime.setHours(0, 0, 0, 0); diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/recording/recording.service.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/recording/recording.service.ts index 77b01112..fc93d7fa 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/services/recording/recording.service.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/services/recording/recording.service.ts @@ -1,5 +1,4 @@ import { Injectable } from '@angular/core'; -import { DomSanitizer } from '@angular/platform-browser'; import { RecordingEvent } from 'openvidu-browser'; import { BehaviorSubject, Observable } from 'rxjs'; import { RecordingInfo, RecordingStatus } from '../../models/recording.model'; @@ -23,16 +22,14 @@ export class RecordingService { /** * @internal - * @param actionService - * @param sanitizer */ - constructor(private actionService: ActionService, private sanitizer: DomSanitizer) { + constructor(private actionService: ActionService) { this.recordingStatusObs = this.recordingStatus.asObservable(); } /** - * @internal - * @param status + * @param status {@link RecordingStatus} + * Update the recording status. This method is used by the OpenVidu Angular library to update the recording status. */ updateStatus(status: RecordingStatus) { this.currentRecording = {