我试图用JQuery控制HTML5视频。我在一个选项卡界面中有两个剪辑,总共有六个选项卡,其他的只有图像。我试图使视频剪辑播放时,他们的标签被点击,然后停止时,任何其他被点击。

这一定是一个简单的事情要做,但我似乎不能让它工作,我使用的代码播放视频是:

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

我读过,视频元素需要在一个函数中公开,以便能够控制它,但找不到一个例子。我能够使它工作使用JS:

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

任何建议都很好。谢谢


当前回答

提醒一下,在你尝试调用视频功能之前,请确保你检查了浏览器是否支持视频功能:

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

这将防止在不支持视频标记的浏览器上出现JavaScript错误。

其他回答

在这里找到答案@ToolmakerSteve,但必须这样微调: 暂停所有

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

或者玩所有

$('video').each(function(index){
    $(this).get(0).play();
});

我还做了这样的工作:

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

@loneSomeday解释得很好,这里有一个解决方案,可能也会给你一个很好的主意,如何实现播放/暂停功能

点击播放/暂停视频

我使用了fantybox和jQuery来嵌入视频。给它一个ID。

也许不是最好的解决方案可以切换播放/暂停不同-但很容易为我和它工作!:)

`

<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>`

为什么需要使用jQuery?您提出的解决方案是可行的,而且可能比构造jQuery对象还要快。

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