Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

200
Visualizações
Reproducir automáticamente el siguiente video para la página de inercia js y vue

¿Cómo puedo mantener el componente Player (vue-plyr), página reactiva?

reproducción automática similar a youtube/netflix, avance el video al siguiente cambiando la página, también en pantalla completa.

Mostrar.vue

 methods: { nextVideo() { console.log("next video"); Inertia.visit("/videos/" + this.plyr.next, { preserveScroll: false, preserveState: true, }); }, },

Agregué setInterval y clearInterval, pero avanzar el video funciona 1 primera vez, la segunda vez funciona, pero después de eso ya no funciona

solo funciona la primera vez

Player.vue

 <template> <vue-plyr ref="plyr"> <video crossorigin playsinline data-poster=""></video> </vue-plyr> </template> <script> import Ply from "plyr"; export default { name: "Player", props: { src: { type: String, }, poster: { type: String, }, markers: { type: Array, }, title: { type: String, }, subtitles: { type: Array, }, }, data() { return { player: null, isEnded: false, octopus: null, timerCircular: 0, timerLabel: 5, }; }, mounted() { this.player = this.$refs.plyr.player; this.player.source = { type: "video", sources: [ { src: this.src, type: "video/mp4", }, ], }; this.player.on("playing", () => console.log("player started")); this.player.on("pause", () => console.log("player paused")); this.player.on("ended", this.ended); }, beforeDestroy() { this.player.destroy(); }, watch: { src() { this.player.source = { type: "video", sources: [ { src: this.src, type: "video/mp4", }, ], }; this.player.on("ready", () => { this.player.play(); }); }, }, methods: { ended() { this.isEnded = true; const timerLabel = setInterval(() => { console.log(this.timerLabel); this.timerLabel -= 1; if (this.timerLabel == 0) { clearInterval(timerLabel); clearInterval(timerCircular); this.$parent.$parent.nextVideo(); this.isEnded = false; this.timerCircular = 0; this.timerLabel = 5; } }, 1000); const timerCircular = setInterval(() => { this.timerCircular += 5; }, 200); }, }, }; </script> <style lang="scss" scoped> </style>
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda