【问题标题】:How to pause Vimeo video in Javascript?如何在 Javascript 中暂停 Vimeo 视频?
【发布时间】:2015-11-08 11:20:22
【问题描述】:

我会尽量缩短这段时间,以便快速修复。

我有一个带有 vimeo 视频的灯箱。屏幕右上角有一个用于移除灯箱的按钮,但 vimeo 视频仍在后台播放,您可以听到它,但看不到它。我需要能够在隐藏灯箱的同时暂停 vimeo 视频。

这是我目前的代码:

 var lightbox = 
        '<div id="lightbox">' +
        '<a><p id="click-to-close">Click to close</p></a>' +
        '<div id="content">' + //insert clicked link's href into img src
          ' <iframe id="video" src="https://player.vimeo.com/video/131429700?autoplay=1&title=0&byline=0&portrait=0?api=1" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>' +
        '</div>' +  
      '</div>';



  $("#click-to-close").click(function() {
   $('#lightbox').hide();

          var iframe = document.getElementById('video');

// $f == Froogaloop
var player = $f(iframe);


var pauseButton = document.getElementById("click-to-close");
pauseButton.addEventListener("click", function() {
  player.api("pause");
});
     
    
  
  });

我有什么遗漏/做错了吗?

【问题讨论】:

    标签: javascript jquery video


    【解决方案1】:

    您正在单击处理程序中添加一个 eventListener,它将隐藏您的按钮。

    var lightbox =
      '<div id="lightbox">' +
      '<a><p id="click-to-close">Click to close</p></a>' +
      '<div id="content">' +
      ' <iframe id="video" src="https://player.vimeo.com/video/131429700?autoplay=1&title=0&byline=0&portrait=0?api=1" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>' +
      '</div>' +
      '</div>';
    
    
    
    $("#click-to-close").click(function() {
      // here you hide the pauseButton's container
      $('#lightbox').hide();
    
      var iframe = document.getElementById('video');
      // $f == Froogaloop
      var player = $f(iframe);
    
      var pauseButton = document.getElementById("click-to-close");
      // it is now hidden, we can't access it anymore...
      pauseButton.addEventListener("click", function() {
        player.api("pause");
      });
    });
    

    所以你有两个解决方案:

    • 将您的按钮附加到 #lightbox 元素之外,这看起来很奇怪,因为隐藏的视频仍会播放,
    • 在第一次点击处理程序中直接调用player.api("pause");

    .

    $("#click-to-close").click(function() {
      $('#lightbox').hide();
      var iframe = document.getElementById('video');
      // $f == Froogaloop
      var player = $f(iframe);
      player.api("pause");
    });
    

    【讨论】:

    • $f 未在此上下文中定义
    • @RussellStrauss $f 已定义,这是有问题的评论所说的 frogaloop 函数。
    • @Russell Strauss 您需要为$f 实例添加froogaloop2.min.js
    猜你喜欢
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-28
    • 2013-03-17
    • 2014-11-20
    • 1970-01-01
    相关资源
    最近更新 更多