Browse Source

refactor camera

features/add-popup
parent
commit
afb9c4addf
2 changed files with 12 additions and 12 deletions
  1. +2
    -2
      src/app/shared/component/camera-dialog/camera-dialog.component.html
  2. +10
    -10
      src/app/shared/component/camera-dialog/camera-dialog.component.ts

+ 2
- 2
src/app/shared/component/camera-dialog/camera-dialog.component.html View File

<div mat-dialog-content> <div mat-dialog-content>
<div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="10px" <div fxLayout="row" fxLayoutAlign="center center" fxLayoutGap="10px"
style="height: 50%;" style="height: 50%;"
*ngIf="!videoLoaded">
*ngIf="!player">
<div class="circle-loader"></div> <div class="circle-loader"></div>
<div class="loader"></div> <div class="loader"></div>
</div> </div>
<canvas class="video" #videoPlayer [hidden]="!videoLoaded"></canvas>
<canvas class="video" #videoPlayer [hidden]="!player"></canvas>
</div> </div>

+ 10
- 10
src/app/shared/component/camera-dialog/camera-dialog.component.ts View File

import {AfterViewInit, Component, ElementRef, ViewChild} from '@angular/core';
import {AfterViewInit, Component, ElementRef, OnDestroy, ViewChild} from '@angular/core';
import {MatDialogRef} from "@angular/material/dialog"; import {MatDialogRef} from "@angular/material/dialog";
import {loadPlayer, Player} from "rtsp-relay/browser"; import {loadPlayer, Player} from "rtsp-relay/browser";


templateUrl: './camera-dialog.component.html', templateUrl: './camera-dialog.component.html',
styleUrls: ['./camera-dialog.component.scss'] styleUrls: ['./camera-dialog.component.scss']
}) })
export class CameraDialogComponent implements AfterViewInit{
export class CameraDialogComponent implements AfterViewInit, OnDestroy{


player?: Player; player?: Player;
videoLoaded: boolean = false;
@ViewChild('videoPlayer') videoPlayer?: ElementRef<HTMLCanvasElement>; @ViewChild('videoPlayer') videoPlayer?: ElementRef<HTMLCanvasElement>;


constructor(public dialogRef: MatDialogRef<CameraDialogComponent>) { } constructor(public dialogRef: MatDialogRef<CameraDialogComponent>) { }


async ngAfterViewInit() { async ngAfterViewInit() {
const connect = async () => {
this.player = await loadPlayer({ this.player = await loadPlayer({
url: 'wss://wss.aztrace.vn/stream', url: 'wss://wss.aztrace.vn/stream',
canvas: this.videoPlayer!.nativeElement, canvas: this.videoPlayer!.nativeElement,
onDisconnect: () => {
setTimeout(connect, 5000);
},
onDisconnect(): void{
console.log('disconnect camera, please wait');
}
}); });
this.videoLoaded = true;
};
connect();
} }


onClose(): void { onClose(): void {
this.dialogRef.close(); this.dialogRef.close();
} }


ngOnDestroy(): void {
if (this.player){
this.player?.destroy();
}
}
} }

Loading…
Cancel
Save