2011-12-25 39 views
2

我一直在试图修复他的flexslider实现的朋友网站,这样如果一个vimeo视频正在播放,用户切换到另一张幻灯片,它会暂停该视频。我在这方面遇到了使用froogaloop和jquery的问题。这里是我一直在尝试的一些代码:用jquery,froogaloog和wordpress控制Vimeo iframe的麻烦

(function() { jQuery('.flexslider').flexslider({ 
     slideshowSpeed: slideshowDelay+"000", 
     directionNav: false,      
     animation: "fade" , 
     after: function (slider) 
     { 
      console.log("next"); 
      var currentSlide = slider.currentSlide; 
      var slides = slider.slides; 

      jQuery(slides).each(function (i) 
      { 
       if(i != currentSlide) 
       { 
        var slide = jQuery(slides[i]); 
        jQuery(slide).attr({class : 'slide_selector'}) 
        var vimeo = jQuery('.slide_selector iframe'); 
        if(vimeo.length !== 0) 
        { 

         var src = jQuery(vimeo).attr('src') 
         var controlObject = {"method" : "pause" }; 
         var domWindow = vimeo[0].contentWindow; 
         jQuery(vimeo[0]).bind('ready' , function 
         { 
          console.log("PlayerId: "+ player_id) 
          froogaLoop(player_id).api('pause'); 
         }); 
        } 
       } 
      })         
     } 
    }); 
    showProject(projectSlug); 
});) 

所以,这没有以任何方式工作。我读过我应该在Froogaloop框架中使用init函数,但运行Froogaloop.fn.init(只能达到它)告诉我没有任何东西放入getAttributes属性。这一切都相当混乱。我认为我的主要问题是如何用froogaloop初始化这些iframe?

注意。因为$似乎干扰了wordpress,所以我在我的版本库中用froogaLoop替换了$ f。

回答

1

我在这里看到一些问题。

(虽然它没有显示,我假设你是正确的,包括froogaloop js文件,否则你就不会看到的getAttributes错误。)

我要告诉你一个代码我刚刚为我的网站所做的代码片段,它可以合并到您自己的代码中。

这是从我的网站相关的HTML它装载VIMEO播放器:

<iframe id="vvq-62-vimeo-1" src="http://player.vimeo.com/video/50138878?title=1&byline=1&portrait=0&fullscreen=1&api=1"></iframe> 

首先要注意的事情是,你必须按顺序启用API添加& API = 1到src。

一旦你做到了这一点,这个标准的jQuery将让你的iframe:

iframe =jQuery('#vvq-62-vimeo-1')[0]; 

这将初始化的froogaloop球员:

player = $f(iframe); 

如果你在一个控制台进行测试,然后在这一点上你应该看到:

e.fn.e.init 

然后你可以运行任何的api命令,例如这个c ommand播放视频:

player.api('play'); 

仅供参考,当您尝试一个无效的对象上运行froogaloop API出现的getAttributes错误。看上面的代码,目前还不清楚player_id在哪里设置,所以也许这就是问题所在。

mkm