Reproduzir / pausar o vídeo HTML 5 Usando o JQuery

Estou a tentar controlar vídeos HTML5 usando jQuery. Eu tenho dois clipes em uma interface tabbed, há seis tabs no total, os outros apenas têm imagens. Eu estou tentando fazer os clipes de vídeo tocar quando sua aba é clicada e, em seguida, parar quando qualquer um dos outros são clicados.

isto deve ser uma coisa simples de se fazer, mas parece que não consigo fazê-lo funcionar, o código que estou a usar para reproduzir o vídeo é:

$('#playMovie1').click(function(){
  $('#movie1').play();
      });
Li que o elemento de vídeo precisa de ser exposto numa função para ser capaz. para controlá-lo, mas não consigo encontrar um exemplo. Eu sou capaz de fazê-lo funcionar usando JS:

document.getElementById('movie1').play();
Qualquer conselho seria óptimo. Obrigado.
Author: Barny83, 2011-01-10

15 answers

A sua solução mostra o problema aqui -- {[[0]} não é uma função jQuery, mas uma função do elemento DOM. Por conseguinte, tem de recorrer ao elemento DOM. Você dá um exemplo de como fazer isso com as funções dom nativas. O equivalente jQuery -- se você quisesse fazer isso para se encaixar com uma seleção jQuery existente -- seria $('#videoId').get(0).play(). (get obtém o elemento DOM nativo da selecção jQuery.)

 292
Author: lonesomeday, 2011-01-10 12:58:31
Foi assim que consegui que funcionasse.
jQuery( document ).ready(function($) {
    $('.myHTMLvideo').click(function() {
        this.paused ? this.play() : this.pause();
    });
});

Todas as minhas etiquetas HTML5 têm a classe "myHTMLvideo"

 47
Author: Miguel Tavares, 2016-05-03 12:23:27

Podes fazer

$('video').trigger('play');
$('video').trigger('pause');
 36
Author: wonder, 2017-01-16 02:01:58
Porque precisas de usar o jQuery? Sua solução proposta funciona, e é provavelmente mais rápido do que construir um objeto jQuery.
document.getElementById('videoId').play();
 20
Author: sudo work, 2016-01-11 18:39:37
Para pausar vários vídeos, descobri que isto funciona bem.
$("video").each(function(){
    $(this).get(0).pause();
});

Isto pode ser colocado numa função click que é bastante útil.

 19
Author: Josh Holmes, 2014-12-25 06:51:59

Como extensão da resposta do lonesomeday, também pode usar

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

Observe que não há nenhuma função get() ou eq () jQuery chamada. Dom's array used to call play() function. É um atalho para ter em mente.

 13
Author: ozanmuyes, 2013-11-24 13:37:32
Gosto deste.
$('video').click(function(){
    this[this.paused ? 'play' : 'pause']();
});
Espero que ajude.
 10
Author: , 2015-09-04 16:36:57

Uso o FancyBox e o jQuery para incorporar um vídeo. Dá-lhe uma identificação.

Talvez não seja a melhor solução para alternar o jogo / pausa de forma diferente - mas fácil para mim e funciona! :)

No

`

<input type="hidden" id="current_video_playing">

<input type="hidden" id="current_video_status" value="playing">

<video id="video-1523" autobuffer="false" src="movie.mp4"></video>

<script>

// Play Pause with spacebar

$(document).keypress(function(e) { 

    theVideo = document.getElementById('current_video_playing').value

    if (e.which == 32) {

        if (document.getElementById('current_video_status').value == 'playing') {

            document.getElementById(theVideo).pause();

            document.getElementById('current_video_status').value = 'paused'

        } else {

            document.getElementById('current_video_status').value = 'playing'

            document.getElementById(theVideo).play();

        }

    }

});

</script>`
 4
Author: Alexander W, 2012-01-30 02:52:54

Como nota, certifique-se que verifica se o navegador suporta a função de vídeo, antes de tentar invocá-la:

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

Isso irá evitar erros de JavaScript em navegadores que não suportam a marca de vídeo.

 1
Author: Alex W, 2014-06-27 16:05:21

Usa isto.. $('#video1').attr({'autoplay':'true'});

 0
Author: Antares500, 2011-08-22 19:26:04
Também fiz com que funcionasse assim.
$(window).scroll(function() {
    if($(window).scrollTop() > 0)
        document.querySelector('#video').pause();
    else
        document.querySelector('#video').play();
});
 0
Author: Jasper Chang, 2014-12-25 06:51:23

@loneSomeday explicou-o lindamente, aqui uma solução que também lhe pode dar uma boa ideia de como atingir a funcionalidade de reprodução/pausa

Reproduzir / pausa do vídeo ao carregar

 0
Author: sheelpriy, 2017-05-23 12:18:28

By JQuery using selectors

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

By Javascript using ID

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

Ou

document.getElementById('video_ID').play();  document.getElementById('video_ID').pause();
 0
Author: user1570636, 2017-07-27 16:26:23
<video style="min-width: 100%; min-height: 100%; " id="vid" width="auto" height="auto" controls autoplay="true" loop="loop" preload="auto" muted="muted">
<source src="video/sample.mp4" type="video/mp4">
<source src="video/sample.ogg" type="video/ogg">
</video>
<script> 
$(document).ready(function(){
document.getElementById('vid').play(); });
</script> 
 0
Author: Anusuya, 2017-07-28 06:11:38

Estes são os métodos fáceis que podemos usar

No botão jquery, carregue na função

$("#button").click(function(event){
    $('video').trigger('play');
    $('video').trigger('pause');
}
Obrigado.
 0
Author: subindas pm, 2017-12-28 05:08:15