From 44eb9e9fe08b94e0e5058ec7d4470bafce296373 Mon Sep 17 00:00:00 2001 From: Carlos Santos <4a.santos@gmail.com> Date: Mon, 11 Dec 2023 13:01:50 +0100 Subject: [PATCH] openvidu-components: Emitted event when broadcasting button is clicked --- .../src/lib/components/toolbar/toolbar.component.ts | 8 +++++++- .../videoconference/videoconference.component.html | 1 + .../videoconference/videoconference.component.ts | 5 +++++ .../src/app/openvidu-call/call.component.html | 1 + .../src/app/openvidu-call/call.component.ts | 4 ++++ .../openvidu-webcomponent.component.html | 1 + .../openvidu-webcomponent.component.ts | 5 +++++ 7 files changed, 24 insertions(+), 1 deletion(-) diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/toolbar/toolbar.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/toolbar/toolbar.component.ts index ccefbef8..8dac7ce4 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/toolbar/toolbar.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/toolbar/toolbar.component.ts @@ -188,6 +188,11 @@ export class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit { /** * Provides event notifications that fire when start broadcasting button has been clicked. */ + @Output() onStartBroadcastingClicked: EventEmitter = new EventEmitter(); + + /** + * Provides event notifications that fire when stop broadcasting button has been clicked. + */ @Output() onStopBroadcastingClicked: EventEmitter = new EventEmitter(); /** @@ -584,6 +589,7 @@ export class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit { this.onStopBroadcastingClicked.emit(); this.broadcastingService.updateStatus(BroadcastingStatus.STOPPING); } else if (this.broadcastingStatus === BroadcastingStatus.STOPPED) { + this.onStartBroadcastingClicked.emit(); if (this.showActivitiesPanelButton && !this.isActivitiesOpened) { this.toggleActivitiesPanel('broadcasting'); } @@ -667,7 +673,7 @@ export class ToolbarComponent implements OnInit, OnDestroy, AfterViewInit { } private subscribeToFullscreenChanged() { - document.addEventListener("fullscreenchange", (event) => { + document.addEventListener('fullscreenchange', (event) => { this.isFullscreenActive = Boolean(document.fullscreenElement); this.cdkOverlayService.setSelector(this.isFullscreenActive ? '#session-container' : 'body'); }); diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/videoconference/videoconference.component.html b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/videoconference/videoconference.component.html index 17e42d63..24b10009 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/videoconference/videoconference.component.html +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/videoconference/videoconference.component.html @@ -50,6 +50,7 @@ (onActivitiesPanelButtonClicked)="onActivitiesPanelButtonClicked()" (onStartRecordingClicked)="onStartRecordingClicked('toolbar')" (onStopRecordingClicked)="onStopRecordingClicked('toolbar')" + (onStartBroadcastingClicked)="onToolbarStartBroadcastingClicked.emit()" (onStopBroadcastingClicked)="onStopBroadcastingClicked('toolbar')" > diff --git a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/videoconference/videoconference.component.ts b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/videoconference/videoconference.component.ts index 183ec44a..73369566 100644 --- a/openvidu-components-angular/projects/openvidu-angular/src/lib/components/videoconference/videoconference.component.ts +++ b/openvidu-components-angular/projects/openvidu-angular/src/lib/components/videoconference/videoconference.component.ts @@ -405,6 +405,11 @@ export class VideoconferenceComponent implements OnInit, OnDestroy, AfterViewIni */ @Output() onActivitiesPanelStopBroadcastingClicked: EventEmitter = new EventEmitter(); + /** + * Provides event notifications that fire when start broadcasting button is clicked from {@link ToolbarComponent}. + */ + @Output() onToolbarStartBroadcastingClicked: EventEmitter = new EventEmitter(); + /** * Provides event notifications that fire when start broadcasting button is clicked from {@link ToolbarComponent}. */ diff --git a/openvidu-components-angular/src/app/openvidu-call/call.component.html b/openvidu-components-angular/src/app/openvidu-call/call.component.html index aab23bad..f4266de2 100644 --- a/openvidu-components-angular/src/app/openvidu-call/call.component.html +++ b/openvidu-components-angular/src/app/openvidu-call/call.component.html @@ -48,6 +48,7 @@ (onToolbarChatPanelButtonClicked)="onToolbarChatPanelButtonClicked()" (onToolbarStartRecordingClicked)="onStartRecordingClicked()" (onToolbarStopRecordingClicked)="onStopRecordingClicked()" + (onToolbarStartBroadcastingClicked)="onStartBroadcastingClicked($event)" (onActivitiesPanelStartRecordingClicked)="onStartRecordingClicked()" (onActivitiesPanelStopRecordingClicked)="onStopRecordingClicked()" (onActivitiesPanelDeleteRecordingClicked)="onDeleteRecordingClicked($event)" diff --git a/openvidu-components-angular/src/app/openvidu-call/call.component.ts b/openvidu-components-angular/src/app/openvidu-call/call.component.ts index 27433ce8..87bd8e4d 100644 --- a/openvidu-components-angular/src/app/openvidu-call/call.component.ts +++ b/openvidu-components-angular/src/app/openvidu-call/call.component.ts @@ -91,6 +91,10 @@ export class CallComponent implements OnInit { async onStartBroadcastingClicked(broadcastUrl: string) { console.log('START STREAMING', broadcastUrl); + if (!broadcastUrl) { + console.error('Broadcasting URL is empty'); + return; + } try { this.broadcastingError = null; const resp = await this.restService.startBroadcasting(broadcastUrl); diff --git a/openvidu-components-angular/src/app/openvidu-webcomponent/openvidu-webcomponent.component.html b/openvidu-components-angular/src/app/openvidu-webcomponent/openvidu-webcomponent.component.html index 4dd44d98..e4bfb7c3 100644 --- a/openvidu-components-angular/src/app/openvidu-webcomponent/openvidu-webcomponent.component.html +++ b/openvidu-components-angular/src/app/openvidu-webcomponent/openvidu-webcomponent.component.html @@ -47,6 +47,7 @@ (onToolbarFullscreenButtonClicked)="_onToolbarFullscreenButtonClicked()" (onToolbarStartRecordingClicked)="onStartRecordingClicked('toolbar')" (onToolbarStopRecordingClicked)="onStopRecordingClicked('toolbar')" + (onToolbarStartBroadcastingClicked)="onToolbarStartBroadcastingClicked.emit()" (onToolbarStopBroadcastingClicked)="onStopBroadcastingClicked('toolbar')" (onActivitiesPanelStartRecordingClicked)="onStartRecordingClicked('panel')" (onActivitiesPanelStopRecordingClicked)="onStopRecordingClicked('panel')" diff --git a/openvidu-components-angular/src/app/openvidu-webcomponent/openvidu-webcomponent.component.ts b/openvidu-components-angular/src/app/openvidu-webcomponent/openvidu-webcomponent.component.ts index c28afa08..3705e4bd 100644 --- a/openvidu-components-angular/src/app/openvidu-webcomponent/openvidu-webcomponent.component.ts +++ b/openvidu-components-angular/src/app/openvidu-webcomponent/openvidu-webcomponent.component.ts @@ -712,6 +712,11 @@ export class OpenviduWebComponentComponent implements OnInit { */ @Output() onToolbarStopRecordingClicked: EventEmitter = new EventEmitter(); + /** + * Provides event notifications that fire when start broadcasting button is clicked from {@link ToolbarComponent}. + */ + @Output() onToolbarStartBroadcastingClicked: EventEmitter = new EventEmitter(); + /** * Provides event notifications that fire when stop broadcasting button is clicked from {@link ToolbarComponent}. * The recording should be stopped using the REST API.