2011-12-25 51 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