openvidu/openvidu-testapp/src/app/components/dialogs/local-recording-dialog.comp...

66 lines
2.1 KiB
TypeScript
Raw Normal View History

2018-03-01 11:25:25 +01:00
import { Component, Inject } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
import { LocalRecorder } from 'openvidu-browser';
@Component({
selector: 'app-local-recording-dialog',
template: `
<div mat-dialog-content>
2018-03-02 11:36:12 +01:00
<div id="recorder-preview"></div>
2018-03-01 11:25:25 +01:00
</div>
<div mat-dialog-actions>
<button id="close-record-btn" mat-button mat-dialog-close>Close</button>
<button id="download-record-btn" mat-button (click)="recorder.download()">Download</button>
<button id="upload-record-btn" mat-button [disabled]="endpoint == ''" (click)="uploadFile()">Upload to</button>
2018-03-01 11:25:25 +01:00
<mat-form-field [style.font-size]="'14px'" [style.width]="'170px'">
<input matInput name="endpoint" [(ngModel)]="endpoint">
</mat-form-field>
<mat-icon *ngIf="uploading" [ngClass]="iconClass"
[style.margin-top]="'10px'" [style.color]="iconColor">{{uploadIcon}}</mat-icon>
</div>
`,
styles: [`
#quality-div {
margin-top: 20px;
}
`],
})
export class LocalRecordingDialogComponent {
public myReference: MatDialogRef<LocalRecordingDialogComponent>;
private recorder: LocalRecorder;
private uploading = false;
private endpoint = '';
private uploadIcon: string;
private iconColor: string;
private iconClass = '';
constructor(@Inject(MAT_DIALOG_DATA) public data: any) {
this.recorder = data.recorder;
}
close() {
this.myReference.close();
}
uploadFile() {
this.iconColor = 'black';
this.iconClass = 'rotating';
this.uploadIcon = 'cached';
this.uploading = true;
this.recorder.uploadAsBinary(this.endpoint)
.then(() => {
this.iconColor = 'green';
this.uploadIcon = 'done';
this.iconClass = '';
})
.catch((e) => {
this.iconColor = 'red';
this.uploadIcon = 'clear';
this.iconClass = '';
});
}
}