【问题标题】:Stop Vimeo embeds on previous / next buttons within Jquery Infinite Carousel停止 Vimeo 在 Jquery Infinite Carousel 中的上一个/下一个按钮上嵌入
【发布时间】:2011-12-01 19:57:28
【问题描述】:

我的设置:http://jsfiddle.net/ASa2K/1/

我有一个 Jquery Infinite Carousel,其中将嵌入 Vimeo 视频。

单击“下一个”或“上一个”时,我希望它停止所有视频。目前它在点击时继续播放视频。

我环顾四周,但找不到与我的问题相关的具体内容。我没有你猜到的那么精通js!

【问题讨论】:

    标签: javascript jquery embed jcarousel vimeo


    【解决方案1】:

    Hej 所以你们首先可以在这里找到 api

    http://vimeo.com/api/docs/player-js

    因为它是一个 iframe,所以没有与它通信的向后兼容方式 但是新浏览器有一个叫做 postMessage 的东西。 所以你可以写这个。

    $("iframe").each(function() {
      this.contentWindow.postMessage('{ "method": "pause" }', "http://player.vimeo.com");
    });
    

    页面上记录了不同的方法。但这会暂停所有玩家。

    【讨论】:

    • 谢谢。我不是 100% 清楚如何将上述脚本与我的上一个/下一个按钮链接。
    • 等等,我说得太早了。我对其他 Vimeo 视频进行了尝试,但突然无法正常工作。可以暂停视频,但是当关注当前视频时,它会自动恢复并播放。您的示例保持视频暂停,直到再次单击播放,这就是我想要的。
    • 这让我觉得我错过了一些东西。是你在 js 中唯一改变的东西吗?
    • 请注意,在我的示例中,我已将 &api=1 标记设置为 .... 我的示例正在按您的意愿工作
    • 您好,想知道您是否可以进一步帮助我。我想在我的标记中的常规 div 上使用这个确切的功能。因此,当它被点击时,它会停止所有视频。我不是 100% 确定如何实现上述代码来做到这一点。谢谢!
    【解决方案2】:

    这是一个示例,您可以通过单击按钮进行调用:

    <script>
        function pauseAllVideos(){
            $("iframe").each(function() {
                this.contentWindow.postMessage('{ "method": "pause" }', "http://player.vimeo.com");
            });
        }
    </script>
    

    这是您的 html 中的代码:

    <a href="#" onClick="pauseAllVideos(); return false;">PAUSE VIDEOS</a>
    

    【讨论】:

      【解决方案3】:

      @megakorre 的解决方案对我有用。简单易行。

      一个警告:如果您的域使用 https,除非您像这样将 http 更改为 https,否则它将无法工作:

      this.contentWindow.postMessage('{ "method": "pause" }', "https://player.vimeo.com");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-11
        • 2012-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多