removeEventListener( "timeUpdate" , myFunction) 在视频播放过程中不稳定



一旦我的视频开始播放,就会添加事件侦听器。那是

document.getElementById("myVideo").addEventListener("timeUpdate", myFunction);

,然后在视频结束之前,我希望发生某些事情(也许是淡出(以及视频的最后几秒钟(或保持简单的事情,我只是要写alert("goodbye");之类的东西(。<<<<<<<<<<

当我使用此代码

 var myVideo = document.getElementById ("myVideo");
 function myFunction(){
   if(myVideo.currentTime >= (myVideo.duration-3) )
   {
     alert("this goodbye message is supposed to be displayed only once and exactly three seconds before the video ends");
     myVideo.removeEventListener("timeupdate", myFunction);
   }
  }

它在Chrome中起作用,但不稳定。有时它可以正常工作,但有时警报在实际删除活动侦听器之前会弹出几次(在我的情况下这是不好的(。在Firefox中,它会发射很多次,甚至更糟。我知道不同的浏览器会以非常不同的间隔进行timeupdate事件火。

那你怎么看?我应该放弃 addEventListener() removeEventListener()夫妇使用 setInterval() clearInterval()检查播放头的位置并在时间到来时做事。这样,我可以设置自己的时间间隔,而不是浏览器依赖时间间隔。但是,有人知道是否有可靠的方法可以使用timeUpdate

我改用了计时器,现在它可以完美地工作。

var checkThePlayheadPositionTenTimesASecond = setInterval(myTimer, 100);
function myTimer()
      {
        if(myVideo.currentTime >= (myVideo.duration-3) )
           {
             alert("this video is going to end in three seconds");
             clearInterval(checkThePlayheadPositionTenTimesASecond);
           }
      }

仍然我要让这个帖子活跃起来,以防任何人说什么。

相关内容

  • 没有找到相关文章

最新更新