重新启动Vimeo iFrame与Froogaloop JavaScript和jQuery

Restart Vimeo iFrame with Froogaloop JavaScript and jQuery

本文关键字:JavaScript jQuery Froogaloop Vimeo iFrame 重新启动      更新时间:2023-09-26

我的页面动态启动了几个Vimeo iFrame嵌入视频之一,我正在使用jQuery将它们淡入/淡出和开始/停止。现在,我的关闭功能隐藏了视频,随后暂停了它。如果你在视频被隐藏后再打开它,它会从之前暂停的地方开始。我想重新开机。我不知道该怎么做。有些"停止"answers"重新启动"不是选项(这是多么不合逻辑?播放/暂停/停止)。

我链接到Vimeo的托管版本的Froogaloop JS和使用jQuery调用函数。

谢谢!

JavaScript:

$('#close, #underlay').click(function() {
    $('.vim, #close, #container, #underlay').fadeOut(400);
    var player=$f($('.vid:visible')[0]);
    player.api('pause');
});

当你让它淡出时,你可以像这样寻找视频的开头:

player.api("seekTo", 0);
player.play();

要完全重新启动,我喜欢

player.api('unload')

我更喜欢持续重置所有视频然后暂停它们的解决方案。接下来,播放正在播放的当前视频。

下面的代码可以优化,但它完成了工作,没有真正的缺点。

   function playCurrentVidPWA() {
      let allVids = document.getElementsByClassName('vimeo-player');
      let currentVideo = mySwiper.slides[mySwiper.activeIndex].querySelector('iframe');
   
      // Pause all videos
      if (allVids)
      {
         for (let i = 0; i < allVids.length; i++)
         {
            const iVid = allVids[i]
            let player = new Vimeo.Player(iVid);
            // Set the time of the video back to the begining
            player.setCurrentTime(0)
            // Pause the video for no frame-skip animations
            player.pause()
         }
      }
      // Play current slide video
      if(currentVideo)
      {
         let player = new Vimeo.Player(currentVideo);
         player.play()
      }
   }