मेरे पास वीडियो की एक सरणी है, प्रत्येक वीडियो में एक आईडी है और मैं इसे अपनी HTML फ़ाइल में इस तरह उपयोग करता हूं:

<div class="p-3" *ngFor="let video of videoList; let i = index">
  <video #videoPlayer (ended)="onPlayVideoEnded(video.id)" poster="assets/video/screenshot/{{video.id}}.PNG">
    <source src="assets/video/{{video.id}}.mp4" type="video/mp4" *ngIf="selectedPlayVideoIndex === i" />
  </video>
  <img class="hc-play_video" src="assets/img/play.png" *ngIf="selectedPlayVideoIndex !== i" (click)="onPlayVideoClick(i)">
</div>

और यहाँ मेरी टीएस फ़ाइल है:

onPlayVideoClick(index: number) {
    const videoplayer = this.videoplayer.toArray();
    if (this.selectedPlayVideoIndex > -1) {
      videoplayer[this.selectedPlayVideoIndex].nativeElement.pause();
      videoplayer[this.selectedPlayVideoIndex].nativeElement.currentTime = 0;
    }
    this.selectedPlayVideoIndex = index;
    videoplayer[index].nativeElement.play();
}

कई वीडियो चलाने के बाद, वे वीडियो के पहले फ्रेम के बाद फंस गए। लेकिन मैं जो चाहता हूं वह पोस्टर छवि को फिर से दिखाना है। मैं क्या करूँ?

1
Vala Khosravi 18 अप्रैल 2020, 18:30

1 उत्तर

सबसे बढ़िया उत्तर

आपको जो करना चाहिए वह बहुत आसान है, आप वीडियो को रोकने के बाद .load() फ़ंक्शन जोड़ते हैं। कुछ इस तरह:

onPlayVideoClick(index: number) {
    const videoplayer = this.videoplayer.toArray();
    if (this.selectedPlayVideoIndex > -1) {
        videoplayer[this.selectedPlayVideoIndex].nativeElement.pause();
        videoplayer[this.selectedPlayVideoIndex].nativeElement.currentTime = 0;
        videoplayer[this.selectedPlayVideoIndex].nativeElement.load(); // here
    }
    this.selectedPlayVideoIndex = index;
    videoplayer[index].nativeElement.play();
}

फिर यह वीडियो को पॉज करने के बाद पोस्टर इमेज दिखाएगा।

1
kimia sepehri 18 अप्रैल 2020, 15:40