This commit is contained in:
Peter Maquiran
2023-12-13 18:19:08 +01:00
parent 56c5416aac
commit e2cf79352e
8 changed files with 71 additions and 19 deletions
@@ -30,7 +30,7 @@
src="{{'data:image/jpg;base64,' + files.FileBase64}}">
<video *ngIf="checkFileType.checkFileType(files.FileExtension ) == 'video'" class="post-video" controls="controls" preload="metadata"
webkit-playsinline="webkit-playsinline">
webkit-playsinline="webkit-playsinline" (play)="StopvideoService.registerVideoWithEvent($event)" >
<source src="{{'data:video/mp4;base64,' + files.FileBase64}}" type="video/mp4">
</video>
@@ -12,7 +12,7 @@ import { PermissionService } from 'src/app/services/permission.service';
import { HttpErrorHandle } from 'src/app/services/http-error-handle.service';
import { PublicationFolderService } from 'src/app/store/publication-folder.service';
import { checkFileTypeService } from 'src/app/services/checkFileType.service';
import { StopvideoService } from "src/app/services/stopvideo.service"
@Component({
@@ -44,7 +44,8 @@ export class PublicationDetailPage implements OnInit {
public p:PermissionService,
private httpErrorHandle: HttpErrorHandle,
public publicationFolderService: PublicationFolderService,
public checkFileType: checkFileTypeService
public checkFileType: checkFileTypeService,
public StopvideoService: StopvideoService
) {
}
@@ -51,8 +51,8 @@
<img *ngIf="checkFileType.checkFileType(files.FileExtension ) == 'image'" class="post-img"
[lazyLoad]="'data:image/jpg;base64,' + files.FileBase64">
<video [appVisibility]="onVisibilityChange" *ngIf="checkFileType.checkFileType(files.FileExtension ) == 'video'" class="post-video" controls="controls" preload="metadata"
webkit-playsinline="webkit-playsinline">
<video #videoElement [appVisibility]="onVisibilityChange" *ngIf="checkFileType.checkFileType(files.FileExtension ) == 'video'" class="post-video" controls="controls" preload="metadata"
webkit-playsinline="webkit-playsinline" (play)="stopvideoService.registerVideoWithEvent($event)">
<source src="{{'data:video/mp4;base64,' + files.FileBase64}}" type="video/mp4">
</video>
@@ -1,4 +1,4 @@
import { Component, OnInit, ViewChild } from '@angular/core';
import { Component, ElementRef, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { ModalController,IonicSlides } from '@ionic/angular';
import { Publication } from 'src/app/models/publication';
@@ -17,7 +17,7 @@ import { PublicationFolderService } from 'src/app/store/publication-folder.servi
import { CapacitorVideoPlayer } from 'capacitor-video-player';
import { checkFileTypeService } from 'src/app/services/checkFileType.service';
import { PublicationVideoManagerService } from "src/app/services/publication/publication-video-manager.service"
import { StopvideoService } from "src/app/services/stopvideo.service"
@Component({
selector: 'app-view-publications',
templateUrl: './view-publications.page.html',
@@ -51,6 +51,7 @@ export class ViewPublicationsPage implements OnInit {
swiperModules = [IonicSlides];
@ViewChild('VideoManager') VideoManager;
@ViewChildren('videoElement') videoElements: QueryList<ElementRef>;
constructor(
private modalController: ModalController,
@@ -65,7 +66,8 @@ export class ViewPublicationsPage implements OnInit {
private storage: Storage,
public publicationFolderService: PublicationFolderService,
public checkFileType: checkFileTypeService,
private publicationVideoManagerService: PublicationVideoManagerService) {
private publicationVideoManagerService: PublicationVideoManagerService,
public stopvideoService: StopvideoService) {
/* this.publicationVideoManagerService.setContainer(this.VideoManager.nativeElement) */
@@ -114,7 +116,7 @@ export class ViewPublicationsPage implements OnInit {
})
console.log(this.publicationFolderService.publicationList[this.folderId])
// console.log(this.publicationFolderService.publicationList[this.folderId])
}
@@ -122,10 +124,29 @@ export class ViewPublicationsPage implements OnInit {
console.log("nice to have", e)
if(!e) {
/* this.stopVideo() */
this.stopVideo()
}
}
stopVideo() {
var videos = document.querySelectorAll('video');
// Pause each video
videos.forEach(function (video) {
video.pause();
})
this.videoElements.forEach(videoElement => {
// You can access the native HTML video element using videoElement.nativeElement
const video: HTMLVideoElement = videoElement.nativeElement;
// Do something with each video element
// console.log(video);
});
}
ngOnChanges() {
if (typeof (this.folderId) == 'object') {
@@ -293,7 +314,11 @@ export class ViewPublicationsPage implements OnInit {
goToPublicationDetail(DocumentId: string, ProcessId: string) {
this.router.navigate(['/home/publications/view-publications', this.folderId, DocumentId]);
setTimeout(() => {
this.stopVideo();
this.router.navigate(['/home/publications/view-publications', this.folderId, DocumentId]);
}, 500)
}
async viewPublicationDetail(DocumentId: string) {