【问题标题】:How to get video play paused status with Vimeo API?如何使用 Vimeo API 获取视频播放暂停状态?
【发布时间】:2013-04-05 02:51:08
【问题描述】:

我只是想知道如何在 Vimeo API (http://player.vimeo.com/playground) 上检测视频是否正在播放或暂停(甚至加载/缓冲),这与 Youtube 有很大不同!

【问题讨论】:

    标签: javascript api vimeo vimeo-player


    【解决方案1】:
    const iframe = document.querySelector('iframe');
      const player = new Player(iframe);
      
      player.loadVideo(123456).then(() => {
        player.ready().then(() => {
          player.on('pause', (data) => console.log(data));
        }).catch((err) => console.log(err));
      })
    

    【讨论】:

    • 感谢您提供此代码 sn-p,它可能会提供一些有限的即时帮助。 proper explanation 将通过展示为什么这是解决问题的好方法,并使其对有其他类似问题的未来读者更有用,从而大大提高其长期价值。请edit您的回答添加一些解释,包括您所做的假设。
    【解决方案2】:
                var onPlay = function(data) {
                  console.log("play")
                };
    
                var onPause = function(data) {
                  console.log("pause")
                };
    
                player.addEvent('play', onPlay);
                player.addEvent('pause', onPause);
    

    【讨论】:

      【解决方案3】:

      看起来他们的文档自上次回答以来略有变化。获得播放器实例后,您可以通过以下方式检查播放/暂停状态:

      player.getPaused().then(function(paused) {
          if(paused){
              player.play();
          }else{
             player.pause();
          }
      
      });
      

      来自 vimeo player api docs

      【讨论】:

        【解决方案4】:

        事实证明,您必须将回调作为第二个参数传递给 .api(),它将接收 true / false 作为播放器的暂停状态:

        player.api('paused', function(paused) {
            // paused will be true or false here
        });
        

        https://github.com/vimeo/player-api/issues/31

        【讨论】:

        • 请注意,如果页面上有多个播放器,您还需要在嵌入代码中添加一些内容。来自文档:“如果您在一个页面上嵌入和控制多个播放器或使用我们的 JS API 库 (Froogaloop),您应该为每个播放器提供一个与 iframe 元素的 id 匹配的 player_id。player.vimeo.com/video/VIDEO_ID?api=1&player_id=vimeoplayer
        【解决方案5】:

        查看最富有的example of using vimeo Player Javascript API。它使用 froogaloop 库来通信 vimeo JS API。不要忘记为 iframe 元素添加 id 和参数。

          <iframe id="player_1" src="http://player.vimeo.com/video/7100569?api=1&amp;player_id=player_1" width="540" height="304" frameborder="0" webkitallowfullscreen></iframe>
        

        【讨论】:

          【解决方案6】:

          Vimeo Player JavaScript API 提供以下方法:

          paused():Boolean

          如果视频正在播放,则返回 false,否则返回 true。

          这里有完整的细节:http://developer.vimeo.com/player/js-api

          【讨论】:

          • 该页面包含使用 JS API 的示例代码。他们支持两种方法,一种是手动的,另一种是使用他们的库。两者都有很好的文档记录,实际上它们包含一个您正在寻找的真实示例 - 请参见此处的屏幕截图:evernote.com/shard/s143/sh/82cd1506-78b2-4ea5-9133-c7b62751bf4f/…
          • 啊,谢谢!很难看出这是一个完整的例子——现在将对其进行调查:)
          • 该示例显示了如何使用 pause EVENT,而不是 paused():Boolean 方法。我还是想不通。
          猜你喜欢
          • 1970-01-01
          • 2012-10-02
          • 2011-12-28
          • 2012-01-16
          • 2015-06-18
          • 2012-08-15
          • 1970-01-01
          • 2013-03-17
          • 2019-02-03
          相关资源
          最近更新 更多