2016-09-17 129 views
-1

我現在有播放背景音樂,當你使用YouTube的iframe中加載該頁面的博客:麻煩與YouTube的iframe API

<iframe id="background-music" width="0" height="0" src="https://www.youtube.com/embed/VOR8reYWvx8?rel=1&autoplay=1&enablejsapi=1" xframeborder="0" allowfullscreen></iframe> 

我已經導入了YouTube的iframe的API以及手動:

<script src="http://url_to_script/iframe_api.js"></script> 

我在我的博客上有其他歌曲,我想暫停背景歌曲,只要我在那裏播放其他歌曲之一。根據https://developers.google.com/youtube/iframe_api_reference#Examples的說明,我有以下代碼,但它根本不起作用。

$(".tumblr_audio_player").contents().find('.play_button').click(function() 
       console.debug(YT); 

       player = new YT.player("background-music", { 
        events: { 
         'onReady': function() { console.log("player is ready") }, 
         'onStateChange': function() { console.log("player has changed state"); } 
        } 
       }); 
       player.stopVideo(); 

我不知道我在做什麼錯。我不知道是否需要onReady和onStateChange(我不需要它們),但如果沒有第二個對象參數,它就不起作用,所以我不知道我應該做什麼。

+0

我從來沒有見過'xframeborder =「0」'之前,通常是'FRAMEBORDER =「0」',注意:這不是一個修復,只是一個觀察。請提供[mcve]。 – zer00ne

+0

好吧,我發現了一個錯誤:它應該讀取「new YT.Player(...)」而不是「new YT.player(...)」。現在它說player.stopVideo()(或pauseVideo)不是函數..... – user3822741

+0

我不知道這是什麼:'$(「。tumblr_audio_player」)。contents()。find('。play_button' ).click(function() console.debug(YT); '沒有[mcve]我沒有辦法測試一個修復程序,因此無論我做什麼來幫助猜測。祝你好運。 – zer00ne

回答

0

那麼,我想清楚發生了什麼事情。代碼大部分是正確的,但是,初始化YT.Player對象需要時間,這正是onReady回調的用途。

它確保YT對象在你做任何事之前被初始化。如果您將pauseVideo放在onReady回調中,它將正常工作。因此,要回答我原來的問題,onReady是絕對必要的:

player = new YT.Player("background-music", 
{ events: { 
     onReady: function() { 
      player.stopVideo(); 
     } 
    } 
});