3

Ich verwende vue-youtube-embed, um die Youtube-API in meiner vuejs-Komponente zu verwenden.Vue.js 2 - vue-youtube-einbetten, wie man den Video-Endzustand erkennt?

Hier ist mein Code:

<script> 
export default { 
    data() { 
    return { 
     videoId: 'HjxYvcdpVnU', 
     videoLaunched: false, 
     videoLoaded: false, 
     videoRewatch: false, 
     videoEnded: false 
    } 
    }, 
    computed: { 
    videoThumb: function() { 
     return 'https://img.youtube.com/vi/' + this.videoId + '/maxresdefault.jpg'; 
    } 
    }, 
    methods: { 
    launchVideo() { 
     this.videoLaunched = true; 
     this.player.playVideo(); 
     document.getElementsByTagName('body')[0].classList.add('overlay'); 
    }, 
    ready(player) { 
     fitvids(); 
     this.player = player; 
     this.videoLoaded = true; 
    }, 
    ended() { 
     console.log('Ended'); 
    } 
    } 
} 
</script> 

und die html:

<youtube :video-id="videoId" @ready="ready" @ended="ended" player-width="100%" 
    player-height="57" :player-vars="{ autoplay: 0, controls: 1, modestbranding: 1, showinfo: 0, rel: 0 }"> 
</youtube> 

Die ended() -Methode ist nicht Auslösung, und ich bin nicht sicher, warum.

Die ready() -Methode funktioniert einwandfrei, daher bin ich mir nicht sicher, warum die console.log nicht mit der ended() -Methode ausgelöst wird.

Ich kann ein Beispiel aus der Dokumentation nicht sehen, wie es geht.

+0

Als [Beispiel] (https://github.com/kaorun343/vue-youtube-embed/blob/master/ Beispiel/app.js # L55) zeigt, sollte es die gleichen wie andere sein. Raise als Problem [hier] (https://github.com/kaorun343/vue-youtube-embed/issues/new) es ist nicht gelöst. – Saurabh

+1

Ich weiß nicht, wie ich deine Frage beantworten soll, aber weißt du, dass das 'body' Element über' doutment.body' zugänglich ist? Könnte Ihnen helfen, weniger Codezeilen zu schreiben. – jeerbl

+0

@jeerbl guter Tipp. Vielen Dank. – lukeliasi

Antwort