diff --git a/openvidu-testapp/src/app/components/dialogs/session-properties-dialog/session-properties-dialog.component.html b/openvidu-testapp/src/app/components/dialogs/session-properties-dialog/session-properties-dialog.component.html index b0d1b333..98f49ec0 100644 --- a/openvidu-testapp/src/app/components/dialogs/session-properties-dialog/session-properties-dialog.component.html +++ b/openvidu-testapp/src/app/components/dialogs/session-properties-dialog/session-properties-dialog.component.html @@ -108,7 +108,8 @@
- Record + Record +
@@ -117,6 +118,13 @@ + +
+ Force + publishing + +
+ @@ -124,6 +132,6 @@ + [mat-dialog-close]="{sessionProperties: sessionProperties, turnConf: turnConf, manualTurnConf: manualTurnConf, customToken: customToken, forcePublishing: forcePublishing, tokenOptions: generateTokenOptions()}">SAVE diff --git a/openvidu-testapp/src/app/components/dialogs/session-properties-dialog/session-properties-dialog.component.ts b/openvidu-testapp/src/app/components/dialogs/session-properties-dialog/session-properties-dialog.component.ts index b7427ed2..e58d9496 100644 --- a/openvidu-testapp/src/app/components/dialogs/session-properties-dialog/session-properties-dialog.component.ts +++ b/openvidu-testapp/src/app/components/dialogs/session-properties-dialog/session-properties-dialog.component.ts @@ -14,6 +14,7 @@ export class SessionPropertiesDialogComponent { turnConf: string; manualTurnConf: RTCIceServer = { urls: [] }; customToken: string; + forcePublishing: boolean = false; tokenOptions: TokenOptions; filterName = 'GStreamerFilter'; @@ -29,8 +30,9 @@ export class SessionPropertiesDialogComponent { this.sessionProperties = data.sessionProperties; this.turnConf = data.turnConf; this.manualTurnConf = data.manualTurnConf; - this.tokenOptions = data.tokenOptions; this.customToken = data.customToken; + this.forcePublishing = data.forcePublishing; + this.tokenOptions = data.tokenOptions; } enumToArray(enumerator: any) { diff --git a/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.html b/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.html index 8014c7ea..4e1e16ef 100644 --- a/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.html +++ b/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.html @@ -107,6 +107,9 @@
{{sessionName}}
+ diff --git a/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.ts b/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.ts index 5184a4db..9eb3a466 100644 --- a/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.ts +++ b/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.ts @@ -127,6 +127,7 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { turnConf = 'auto'; manualTurnConf: RTCIceServer = { urls: [] }; customToken: string; + forcePublishing: boolean; tokenOptions: TokenOptions = { role: OpenViduRole.PUBLISHER, record: true, @@ -141,6 +142,7 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { events: OpenViduEvent[] = []; + republishPossible: boolean = false; openviduError: any; constructor( @@ -234,7 +236,7 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { .then(() => { this.changeDetector.detectChanges(); - if (this.publishTo && this.session.capabilities.publish) { + if (this.publishTo && this.session.capabilities.publish || this.forcePublishing) { // this.asyncInitPublisher(); this.syncInitPublisher(); } @@ -493,9 +495,14 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { this.publisher.subscribeToRemote(); } - this.session.publish(this.publisher).catch((error: OpenViduError) => { + this.session.publish(this.publisher).then(() => { + this.republishPossible = false; + }).catch((error: OpenViduError) => { console.error(error); + alert(error.name + ": " + error.message); + this.republishPossible = true; this.session.unpublish(this.publisher); + delete this.publisher; }); } @@ -558,7 +565,8 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { turnConf: this.turnConf, manualTurnConf: this.manualTurnConf, customToken: this.customToken, - tokenOptions: this.tokenOptions + forcePublishing: this.forcePublishing, + tokenOptions: this.tokenOptions, }, width: '450px' }); @@ -572,6 +580,7 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { this.turnConf = result.turnConf; this.manualTurnConf = result.manualTurnConf; this.customToken = result.customToken; + this.forcePublishing = result.forcePublishing; this.tokenOptions = result.tokenOptions; } document.getElementById('session-settings-btn-' + this.index).classList.remove('cdk-program-focused'); @@ -715,4 +724,8 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { this.publisherProperties.videoSource !== 'screen'); } + republishAfterError() { + this.syncInitPublisher(); + } + }