2013-08-21 82 views
-2

我知道這個主題有幾個問題。我甚至有一個很好的回答here檢測YouTube視頻何時完成

問題是以下幾點。我有一段我無法改變的代碼,顯示了YouTube視頻。我必須適應它。

問題是函數onPlayerStateChange()永遠不會啓動。任何想法爲什麼發生這種情況

<script src="http://www.youtube.com/player_api"></script> 
<script type="text/javascript"> 
var ytPlayer; 
var idplayer; 
function onYouTubePlayerReady(playerId) { 
    ytPlayer = document.getElementById("ytPlayer"); 
} 

function pauseVideo() { 
    if (ytPlayer) { 
    ytPlayer.stopVideo(); 
    } 
} 

// when video ends 
function onPlayerStateChange(event) {   
    if(event.data === 0) { 
    idplayer=document.getElementById("a_TMBLRWDLH").href; 
     window.location.assign(idplayer); 
    } 
} 

j$(document).ready(function(){ 


    j$('#' + Bnr_vars[0].banner).click(function(){ 

     if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) 
{ 
    var info='<iframe width=\"600\" height=\"338\" src=\"http://www.youtube.com/embed/0Bmhjf0rKe8?rel=0&wmode=transparent&modestbranding=1&autoplay=1&enablejsapi=1\" frameborder=\"0\" allowfullscreen></iframe>'; 
    j$('#player').html(info); 
} 

}); 
</script> 
+1

專業提示:簡化你的代碼並確保它可以正常工作,然後*做你喜歡的事情。以這種方式進行調試更容易,而且您不必像以往那樣重複執行步驟。它顯然在鏈接答案的例子中起作用,所以我建議你從那裏開始。看看這個[鏈接](https://developers.google.com/youtube/iframe_api_reference#Getting_Started) – ShadowScripter

+0

是的。感謝那。文檔說我需要&enablejsapi = 1,這樣我可以調用事件函數。但它不起作用。 – Diego

回答

0

我有解決方案,以防萬一幫助別人。我只需要在出現對話框時創建新的YT.Player。

j$(document).ready(function(){ 
    var Bnr_vars = [ 
     { 
      "banner" : "teamworkRowersDLVidOpener", 
      "closer" : "teamworkRowersDLVidCloser", 
      "dialog" : "teamworkRowersDLVidDialog", 
      "auto" : "false"    // auto open TRUE or FALSE? 
     } 
    ]; 

    lightboxCreate(Bnr_vars); // create lightboxes based on array above 

    j$('#' + Bnr_vars[0].banner).click(function(){ 

     if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) 
     { 
      var info=new YT.Player('player', { 
       height: '338', 
       width: '600', 
       videoId: '_Zmr0cUeNBY', 
       playerVars : { 
        playerapiid:'player1', 
        rel: '0', 
        wmode: 'transparent', 
        modestbranding: '1' 
       }, 
       events: { 
        'onReady': onPlayerReady, 
        'onStateChange': onPlayerStateChange 
       } 
      }); 
      j$('#player').html(info); 
     } 

    }); 
相關問題