Lire / mettre en pause une vidéo HTML 5 en utilisant JQuery

J’essaie de contrôler les vidéos HTML5 en utilisant JQuery. J’ai deux clips dans une interface à tabs, il y a six tabs au total, les autres ont juste des images. J’essaie de faire jouer les clips vidéo lorsque leur onglet est cliqué, puis d’arrêter lorsque l’un des autres clique dessus.

Ce doit être une chose simple à faire mais je n’arrive pas à le faire fonctionner, le code que j’utilise pour lire la vidéo est:

$('#playMovie1').click(function(){ $('#movie1').play(); }); 

J’ai lu que l’élément vidéo doit être exposé dans une fonction pour pouvoir le contrôler, mais ne peut pas trouver d’exemple. Je peux le faire fonctionner avec JS:

 document.getElementById('movie1').play(); 

Tout conseil serait bon. Merci

Votre solution montre le problème ici – play n’est pas une fonction jQuery mais une fonction de l’élément DOM. Vous devez donc l’appeler sur l’élément DOM. Vous donnez un exemple de la façon de procéder avec les fonctions DOM natives. L’équivalent jQuery – si vous vouliez faire cela pour correspondre à une sélection jQuery existante – serait $('#videoId').get(0).play() . ( get obtient l’élément DOM natif de la sélection jQuery.)

Voici comment j’ai réussi à le faire fonctionner:

 jQuery( document ).ready(function($) { $('.myHTMLvideo').click(function() { this.paused ? this.play() : this.pause(); }); }); 

Toutes mes balises HTML5 ont la classe ‘myHTMLvideo’

Tu peux faire

 $('video').sortinggger('play'); $('video').sortinggger('pause'); 

Pourquoi avez-vous besoin d’utiliser jQuery? Votre solution proposée fonctionne, et elle est probablement plus rapide que la construction d’un object jQuery.

 document.getElementById('videoId').play(); 

Pour interrompre plusieurs vidéos, j’ai constaté que cela fonctionne bien:

 $("video").each(function(){ $(this).get(0).pause(); }); 

Cela peut être mis dans une fonction de clic qui est très pratique.

Dans le prolongement de la réponse de Lonesomeday, vous pouvez également utiliser

 $('#playMovie1').click(function(){ $('#movie1')[0].play(); }); 

Notez qu’il n’y a pas de fonction get () ou eq () appelée jQuery. Le tableau de DOM utilisé pour appeler la fonction play (). C’est un raccourci à garder à l’esprit.

J’aime celui la:

 $('video').click(function(){ this[this.paused ? 'play' : 'pause'](); }); 

J’espère que cela aide.

J’utilise FancyBox et jQuery pour intégrer une vidéo. Donnez-lui un identifiant.

Peut-être que la solution BEST ne pourrait pas changer la lecture / pause différemment – mais facile pour moi et ça marche! 🙂

dans le

`

    ` 

Juste comme une note, assurez-vous de vérifier si le navigateur prend en charge la fonction vidéo, avant d’essayer de l’invoquer:

 if($('#movie1')[0].play) $('#movie1')[0].play(); 

Cela évitera les erreurs JavaScript sur les navigateurs qui ne prennent pas en charge la balise vidéo.

utilisez ceci .. $('#video1').attr({'autoplay':'true'});

Je l’ai aussi fait fonctionner comme ceci:

 $(window).scroll(function() { if($(window).scrollTop() > 0) document.querySelector('#video').pause(); else document.querySelector('#video').play(); }); 

@loneSomeday l’a très bien expliqué, voici une solution qui pourrait vous donner une bonne idée de la fonctionnalité de lecture / pause.

lecture / pause de la vidéo sur clic

Par JQuery en utilisant des sélecteurs

 $("video_selector").sortinggger('play'); $("video_selector").sortinggger('pause'); $("div.video:first").sortinggger('play');$("div.video:first").sortinggger('pause'); $("#video_ID").sortinggger('play');$("#video_ID").sortinggger('pause'); 

Par Javascript avec ID

 video_ID.play(); video_ID.pause(); 

OU

 document.getElementById('video_ID').play(); document.getElementById('video_ID').pause(); 
   

Ce sont les méthodes faciles que nous pouvons utiliser

sur le bouton jquery cliquez sur la fonction

 $("#button").click(function(event){ $('video').sortinggger('play'); $('video').sortinggger('pause'); } 

Merci