mirror of https://github.com/OpenVidu/openvidu.git
openvidu-components: Refactored recording and broadcasting services
parent
e45aec750e
commit
421869d48e
|
@ -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() {
|
||||
|
|
|
@ -15,23 +15,31 @@ export class BroadcastingService {
|
|||
private broadcastingTimeInterval: NodeJS.Timer;
|
||||
private broadcastingStatus = <BehaviorSubject<{ status: BroadcastingStatus; time?: Date } | undefined>>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);
|
||||
|
|
|
@ -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 = {
|
||||
|
|
Loading…
Reference in New Issue