如何在单击其他视频的播放按钮时暂停视频

时间:2016-10-04 21:14:26

标签: javascript jquery html5 video

我认为使用点击事件进行设置会很简单,但是它不会将html5视频的控件视为视频的一部分。

页面上还有另一个视频,其ID为video1,设置为自动播放。 ID为video2的第二个视频没有重叠,但有html5控件,因此观众可以启动它。我想设置它,以便一旦选择video2中的播放按钮,视频1就停止播放。

这是我尝试过的:

HTML

<video id="video2" controls>
  <source src="assets/explainer.mp4" type="video/mp4">
  This browser does not support HTML5 video
</video>

JS

$('#video2').click(function(){
  $('#video1').get(0).pause();
});

请注意,如果我点击它可以使用的视频,但点击控件则不会。

4 个答案:

答案 0 :(得分:2)

// You heard about classes

$(".allMyVideos").on("click", function() {

    // All but not this one - pause
    $(".allMyVideos").not( this ).each(function() {
         this.pause();
    });

    // Play this one
    // this.play();

    // Or rather toggle play / pause
    this[this.paused ? "play" : "pause"]();

});

或者,如果您有两个ID视频:

var $v1$v2 = $("#video1, #video2");

$v1$v2.on("click", function() {

    // ...not this one - pause
    $v1$v2.not( this ).each(function() {
         this.pause();
    });

    // Play this one
    // this.play();

    // Or rather toggle play / pause
    this[this.paused ? "play" : "pause"]();

});

答案 1 :(得分:2)

适用于视频和声音

html >>

<audio class="player"  controls>
       <source src="{{$sound->path}}" type="audio/ogg">
       <source src="{{$sound->path}}" type="audio/mpeg">                                
</audio>
<video class="player" style="max-width: 100%" controls>
       <source src="{{$video->path}}" type="video/mp4">
       <source src="{{$video->path}}" type="video/ogg">
</video>

脚本>>

<script>
    $(document).ready(function () {
        function playFile() {
            $(".player").not(this).each(function () {
                $(this).get(0).pause();
            });
            this[this.get(0).paused ? "play" : "pause"]();
        }

        $('.player').on("click play", function() {
            playFile.call(this);
        });
    })
</script>

答案 2 :(得分:0)

视频元素支持它自己的事件。 playing就是其中之一,并在视频开始播放时提醒您,无论是自动播放还是暂停后按下播放按钮。您应该能够听取它而不是点击事件。

答案 3 :(得分:0)

您可以收听播放事件:

var vid1 = document.getElementById("video-1");    
var vid2 = document.getElementById("video-2");

vid1.onplay = function() {
    vid2.pause();
};

希望你能从这里接受它:)

您可以在此处查看您可以在视频元素上收听的所有evets(只需点击播放/暂停并查看表格更新): https://www.w3.org/2010/05/video/mediaevents.html