openvidu-components: Fixed possible access to undefined

pull/780/head
Carlos Santos 2023-02-22 14:07:00 +01:00
parent af8c4ec9d4
commit 4af0e85341
3 changed files with 17 additions and 12 deletions

View File

@ -176,15 +176,15 @@ export class RecordingActivityComponent implements OnInit {
private subscribeToRecordingStatus() { private subscribeToRecordingStatus() {
this.recordingStatusSubscription = this.recordingService.recordingStatusObs.subscribe( this.recordingStatusSubscription = this.recordingService.recordingStatusObs.subscribe(
(ev: { info: RecordingInfo; time?: Date }) => { (ev?: { info: RecordingInfo; time?: Date }) => {
if (ev?.info) { if (ev?.info) {
if (this.recordingStatus !== RecordingStatus.FAILED) { if (this.recordingStatus !== RecordingStatus.FAILED) {
this.oldRecordingStatus = this.recordingStatus; this.oldRecordingStatus = this.recordingStatus;
} }
this.recordingStatus = ev.info.status; this.recordingStatus = ev.info.status;
this.recordingAlive = ev.info.status === RecordingStatus.STARTED; this.recordingAlive = ev.info.status === RecordingStatus.STARTED;
this.cd.markForCheck();
} }
this.cd.markForCheck();
} }
); );
} }

View File

@ -695,12 +695,15 @@ export class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit {
} }
private subscribeToRecordingStatus() { private subscribeToRecordingStatus() {
this.recordingSubscription = this.recordingService.recordingStatusObs.subscribe((ev: { info: RecordingInfo; time?: Date }) => { this.recordingSubscription = this.recordingService.recordingStatusObs.subscribe((ev?: { info: RecordingInfo; time?: Date }) => {
this.recordingStatus = ev.info.status; if (ev) {
if (ev.time) { this.recordingStatus = ev.info.status;
this.recordingTime = ev.time;
if (ev?.time) {
this.recordingTime = ev.time;
}
this.cd.markForCheck();
} }
this.cd.markForCheck();
}); });
} }

View File

@ -11,12 +11,12 @@ export class RecordingService {
/** /**
* Recording status Observable which pushes the recording state in every update. * Recording status Observable which pushes the recording state in every update.
*/ */
recordingStatusObs: Observable<{ info: RecordingInfo; time?: Date }>; recordingStatusObs: Observable<{ info: RecordingInfo; time?: Date } | undefined>;
private recordingTime: Date | undefined; private recordingTime: Date | undefined;
private recordingTimeInterval: NodeJS.Timer; private recordingTimeInterval: NodeJS.Timer;
private currentRecording: RecordingInfo = { status: RecordingStatus.STOPPED }; private currentRecording: RecordingInfo = { status: RecordingStatus.STOPPED };
private recordingStatus = <BehaviorSubject<{ info: RecordingInfo; time?: Date | undefined } | undefined>>new BehaviorSubject(undefined); private recordingStatus = <BehaviorSubject<{ info: RecordingInfo; time?: Date } | undefined>>new BehaviorSubject(undefined);
private baseUrl = '/' + (!!window.location.pathname.split('/')[1] ? window.location.pathname.split('/')[1] + '/' : ''); private baseUrl = '/' + (!!window.location.pathname.split('/')[1] ? window.location.pathname.split('/')[1] + '/' : '');
@ -106,9 +106,11 @@ export class RecordingService {
this.recordingTime = new Date(); this.recordingTime = new Date();
this.recordingTime.setHours(0, 0, 0, 0); this.recordingTime.setHours(0, 0, 0, 0);
this.recordingTimeInterval = setInterval(() => { this.recordingTimeInterval = setInterval(() => {
this.recordingTime.setSeconds(this.recordingTime.getSeconds() + 1); if(this.recordingTime) {
this.recordingTime = new Date(this.recordingTime.getTime()); this.recordingTime.setSeconds(this.recordingTime.getSeconds() + 1);
this.recordingStatus.next({ info: this.currentRecording, time: this.recordingTime }); this.recordingTime = new Date(this.recordingTime.getTime());
this.recordingStatus.next({ info: this.currentRecording, time: this.recordingTime });
}
}, 1000); }, 1000);
} }