【问题标题】:Stop flexslider when video is playing播放视频时停止 flexslider
【发布时间】:2013-06-26 09:22:09
【问题描述】:

我正在使用flexslider 插件来显示图片和视频。幻灯片会自动更改,我觉得很好。问题是,当用户播放视频(来自 youtube 的 iframe)时,flexslider 会继续更换幻灯片。

我检查了文档并找到了pauseOnHover,这有点作用,但我更希望它在视频开始时暂停,并在视频暂停/结束时继续。有关如何处理此问题的任何建议?

编辑

这是打开 iframe 的 div:

<div class="span6 animated fadeInLeftBig" id="main-media">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/someID?version=3&enablejsapi=1" frameborder="0" allowfullscreen id="iframe-id"></iframe>
     </div>

【问题讨论】:

    标签: javascript jquery video youtube flexslider


    【解决方案1】:

    解决此问题的最佳方法是使用 YouTube API,如下所示:

    //Implement Youtube API
    (function(){ 
      var s = document.createElement("script");
      s.src = "http://www.youtube.com/player_api"; /* Load Player API*/
      var before = document.getElementsByTagName("script")[0];
      before.parentNode.insertBefore(s, before);
    })();
    
    var YT_ready=(function(){var b=[],c=false;return function(a,d){if(a===true){c=true;while(b.length){b.shift()()}}else if(typeof a=="function"){if(c)a();else b[d?"unshift":"push"](a)}}})();
    YT_ready(function() {
        (function($) {
                var frameID = "yourIframeID"
                var player = new YT.Player(frameID, {
                        events: {
                            "onStateChange": function(event) {
                                if (event.data == 1 || event.data == 3) {
                                    $('.flexslider').flexslider("pause");
                                }
                                else if (event.data == 0 || event.data == 2 || event.data == 5) {
                                    $('.flexslider').flexslider("play");
                                }
                            }
                        }
                    });
            });
    
    
    
        })(jQuery);
    function onYouTubePlayerAPIReady() {
        YT_ready(true)
    }
    

    【讨论】:

    • 嗯,似乎有些不对劲。我已将 iframe id 输入到“frameID”中,但它根本没有反应。控制台也没有显示任何与此相关的错误...
    • 你的 html 标记会很好...... iframe src 应该在末尾有 "?enablejsapi=1"..
    • 我已经添加了有问题的 iframe 部分。
    • 其实没有,有错误。控制台点与 (jQuery) 一致。错误是:Uncaught TypeError: undefined is not a function
    • 删除部分 (function($) { }) 行修复了问题,我现在可以根据播放器的状态停止/开始幻灯片放映。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 2019-08-23
    相关资源
    最近更新 更多