如果currentTime> = 2,则暂停视频

时间:2013-09-08 20:58:36

标签: javascript html5 video addeventlistener

当currentTime>> = 2时,我想暂停视频,但我遇到了问题。 当您点击白色div时,视频会发生变化,我希望该视频在2秒后暂停。但正如你可以在小提琴上看到的那样,第一个视频也会在2秒钟暂停,我不希望这样。我希望我的eventhandler功能只能用于第二个视频而不是第一个视频。

HTML

<video src="videos/loop.webm" id="video" width="100%" autoplay> 
</video>    

JS

    //This code tracks currentTime
        $("#video").on(
            "timeupdate", 
            function(event){
              onTrackedVideoFrame(this.currentTime);
            });
         });

        function onTrackedVideoFrame(currentTime){
            $("#current").text(currentTime);
         }

         video.addEventListener("timeupdate", function() {
               if (this.currentTime >= 2.000 && this.currentTime <= 8.000) {
                     this.pause();
                }
             }, false);
    //This code tracks currentTime


   //this code changes video source
    var videoSource = new Array();
    videoSource[0]='videos/loop.webm';
    videoSource[1]='videos/fullcut.webm';
    var videoCount = videoSource.length;      

        function videoPlay(videoNum)
        {
        var video = document.getElementById('video');
    video.setAttribute("src",videoSource[videoNum]);
    video.load();
    video.play();
        }
    //this code changes video source

这是小提琴:http://jsfiddle.net/fKfgp/22/

感谢阅读!

1 个答案:

答案 0 :(得分:1)

一种方法是在设置新源后设置timeupdate侦听器。

$("#video").on(
    "timeupdate", 
    function(event){
      onTrackedVideoFrame(this.currentTime);
});

function onTrackedVideoFrame(currentTime){
    $("#current").text(currentTime);
 }

var videoSource = new Array();
videoSource[0]='http://www.w3schools.com/html/mov_bbb.mp4';
videoSource[1]='http://www.tools4movies.com/trailers/1012/Kill%20Bill%20Vol.3.mp4';
var videoCount = videoSource.length;      

function videoPlay(videoNum)
{
    var video = document.getElementById('video');
    video.setAttribute("src",videoSource[videoNum]);
    video.load();
    video.play();
    video.addEventListener("timeupdate", function() {
        if (this.currentTime >= 2.000 && this.currentTime <= 8.000){
          this.pause();
        }
    }, false);
}