0

我想在 currentTime >=2 时暂停视频,但我有问题。当您单击白色 div 时,视频会发生变化,我希望该视频在 2 秒处暂停。但正如您在小提琴中看到的那样,第一个视频也会在 2 秒处暂停,我不希望这样。我希望我的事件处理函数仅适用于第二个视频而不是第一个。

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/

谢谢阅读!

4

1 回答 1

2

一种方法是在设置新源之后将 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);
}
于 2013-09-08T21:31:57.663 回答