diff --git a/openvidu-testapp/src/app/app.module.ts b/openvidu-testapp/src/app/app.module.ts index 9a9f59b5..baf862d8 100644 --- a/openvidu-testapp/src/app/app.module.ts +++ b/openvidu-testapp/src/app/app.module.ts @@ -26,12 +26,13 @@ import { PublisherPropertiesDialogComponent } from './components/dialogs/publish import { ScenarioPropertiesDialogComponent } from './components/dialogs/scenario-properties-dialog/scenario-properties-dialog.component'; import { FilterDialogComponent } from './components/dialogs/filter-dialog/filter-dialog.component'; import { ShowCodecDialogComponent } from './components/dialogs/show-codec-dialog/show-codec-dialog.component'; +import { RecordingPropertiesComponent } from './components/dialogs/recording-properties/recording-properties.component'; import { OpenviduRestService } from './services/openvidu-rest.service'; import { OpenviduParamsService } from './services/openvidu-params.service'; import { TestFeedService } from './services/test-feed.service'; import { MuteSubscribersService } from './services/mute-subscribers.service'; -import {SessionInfoDialogComponent} from "./components/dialogs/session-info-dialog/session-info-dialog.component"; +import { SessionInfoDialogComponent } from "./components/dialogs/session-info-dialog/session-info-dialog.component"; @NgModule({ declarations: [ @@ -46,6 +47,7 @@ import {SessionInfoDialogComponent} from "./components/dialogs/session-info-dial SessionPropertiesDialogComponent, SessionApiDialogComponent, EventsDialogComponent, + RecordingPropertiesComponent, LocalRecordingDialogComponent, PublisherPropertiesDialogComponent, ScenarioPropertiesDialogComponent, diff --git a/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.css b/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.css new file mode 100644 index 00000000..76251b3b --- /dev/null +++ b/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.css @@ -0,0 +1,42 @@ +.inner-text-input { + margin-left: 9px; + width: 30%; +} + +#rec-properties-btn { + padding-left: 0; + padding-right: 0; + display: inline-block; +} + +#rec-properties-div { + background-color: #f7f7f7; + margin-bottom: 10px; + padding: 10px 5px 0 5px; + border: 1px solid #00000026; + border-radius: 3px; +} + +#rec-properties-div mat-form-field { + max-width: 150px; +} + +#rec-properties-div mat-checkbox { + margin-left: 10px; +} + +#recording-resolution-form { + max-width: 100px !important; +} + +.label { + display: block; + font-size: 12px; + color: rgba(0, 0, 0, 0.54); + font-weight: 400; + margin-bottom: 5px; +} + +mat-checkbox { + font-size: 14px; +} diff --git a/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.html b/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.html new file mode 100644 index 00000000..a7d9461f --- /dev/null +++ b/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.html @@ -0,0 +1,50 @@ +
+ +
+ + + + + + + {{ enumerator }} + + + +
+ Has audio + Has video +
+
+
+ + + + {{ enumerator }} + + + + + + + + + + + + + + + + + + +
+
diff --git a/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.ts b/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.ts new file mode 100644 index 00000000..1065ed8e --- /dev/null +++ b/openvidu-testapp/src/app/components/dialogs/recording-properties/recording-properties.component.ts @@ -0,0 +1,31 @@ +import { Component, Input, Output, EventEmitter } from '@angular/core'; +import { Recording, RecordingLayout, RecordingProperties } from 'openvidu-node-client'; + +@Component({ + selector: 'app-recording-properties', + templateUrl: './recording-properties.component.html', + styleUrls: ['./recording-properties.component.css'] +}) +export class RecordingPropertiesComponent { + + recMode = Recording.OutputMode; + recLayouts = RecordingLayout; + + getRecordingProperties: RecordingProperties; + @Output() recordingPropertiesChange: EventEmitter = new EventEmitter(); + + @Input() + get recordingProperties(): RecordingProperties { + return this.getRecordingProperties; + } + + set recordingProperties(value: RecordingProperties) { + this.getRecordingProperties = value; + this.recordingPropertiesChange.emit(this.getRecordingProperties); + } + + enumToArray(enumerator: any) { + return Object.keys(enumerator); + } + +} diff --git a/openvidu-testapp/src/app/components/dialogs/session-api-dialog/session-api-dialog.component.css b/openvidu-testapp/src/app/components/dialogs/session-api-dialog/session-api-dialog.component.css index 5ff30ddb..2392bfd3 100644 --- a/openvidu-testapp/src/app/components/dialogs/session-api-dialog/session-api-dialog.component.css +++ b/openvidu-testapp/src/app/components/dialogs/session-api-dialog/session-api-dialog.component.css @@ -33,29 +33,3 @@ mat-dialog-content button { margin-left: 9px; width: 30%; } - -#rec-properties-btn { - padding-left: 0; - padding-right: 0; - display: inline-block; -} - -#rec-properties-div { - background-color: #f7f7f7; - margin-bottom: 10px; - padding: 10px 5px 0 5px; - border: 1px solid #00000026; - border-radius: 3px; -} - -#rec-properties-div mat-form-field { - max-width: 150px; -} - -#rec-properties-div mat-checkbox { - margin-left: 16px; -} - -#recording-resolution-form { - max-width: 100px !important; -} diff --git a/openvidu-testapp/src/app/components/dialogs/session-api-dialog/session-api-dialog.component.html b/openvidu-testapp/src/app/components/dialogs/session-api-dialog/session-api-dialog.component.html index 6dc24762..2e3265f7 100644 --- a/openvidu-testapp/src/app/components/dialogs/session-api-dialog/session-api-dialog.component.html +++ b/openvidu-testapp/src/app/components/dialogs/session-api-dialog/session-api-dialog.component.html @@ -42,66 +42,22 @@ - - - -
-
- - - - - - - - - - {{ enumerator }} - - - -
-
- - - - {{ enumerator }} - - - - - - -
-
- Has audio - Has video - - - - - - -
-
- - -
+ + + + + +
+
+ + + -
+ +
+ + SUB + PUB + MOD + +
-
- Record - -
+ +
+ + + + + + + + + + + + + + {{filterName}} + + + + + +
- -
- - - -
+
+ Record + +
-
- Force - publishing - -
+ +
+ + + +
+ +
+ Force + publishing + +
- - - - - - - + + + + + + + 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 d63c381c..e36339df 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 @@ -93,9 +93,18 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { mediaMode: MediaMode.ROUTED, recordingMode: RecordingMode.MANUAL, defaultRecordingProperties: { + name: '', + hasAudio: true, + hasVideo: true, outputMode: Recording.OutputMode.COMPOSED, recordingLayout: RecordingLayout.BEST_FIT, - customLayout: '' + resolution: '1280x720', + frameRate: 25, + shmSize: 536870912, + customLayout: '', + mediaNode: { + id: '' + } }, customSessionId: '', forcedVideoCodec: null, @@ -600,8 +609,7 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { customToken: this.customToken, forcePublishing: this.forcePublishing, connectionProperties: this.connectionProperties, - }, - width: '450px' + } }); dialogRef.afterClosed().subscribe(result => { @@ -626,22 +634,8 @@ export class OpenviduInstanceComponent implements OnInit, OnChanges, OnDestroy { openVidu: !!this.OV_NodeClient ? this.OV_NodeClient : new OpenViduAPI(this.openviduUrl, this.openviduSecret), session: this.sessionAPI, sessionId: !!this.session ? this.session.sessionId : this.sessionName, - recordingProperties: !!this.recordingProperties ? this.recordingProperties : - { - name: '', - outputMode: this.sessionProperties.defaultRecordingProperties.outputMode, - recordingLayout: this.sessionProperties.defaultRecordingProperties.recordingLayout, - customLayout: this.sessionProperties.defaultRecordingProperties.customLayout, - resolution: '1280x720', - frameRate: 25, - hasAudio: true, - hasVideo: true, - mediaNode: { - id: '' - } - } + recordingProperties: !!this.recordingProperties ? this.recordingProperties : this.sessionProperties.defaultRecordingProperties }, - width: '425px', disableClose: true });