2011-08-24 71 views
0

這是我的jQuery代碼:的jQuery的YouTube API - 當視頻停止播放我希望它消失

/* videoplayer controls */ 
$('#sjvslider li a').bind('click', function() { 
$('#sjvslider li a').removeClass('active'); 
$(this).addClass('active'); // sets the thumbnail that what just clicked. 
var vidNum = $(this).attr('rel'); 
var myVid = $("#video"+vidNum+"").html(); 
$('.videoplayer').html(myVid); 
}); 

這是我的HTML:

<div id="videoDiv" class="videoplayer"></div> 

<div id="video1" > 
<object width="508" height="273" id="myytplayer" data="http://www.youtube.com/v/CezWPkoWXbY?version=3&amp;hl=en_US&amp;rel=0&amp;enablejsapi=1&playerapiid=ytplayer"> 
<param name="allowscriptaccess" value="always"> 
<param name="bgcolor" value="#000"> 
</object> 
</div> 
<div id="video2" class="novideo"> 
<object width="508" height="273" id="myytplayer" data="http://www.youtube.com/v/qhluM6nrCVs?version=3&amp;enablejsapi=1&playerapiid=ytplayer"> 
<param name="allowscriptaccess" value="always"> 
<param name="bgcolor" value="#000"> 
</object> 
</div> 

然後我有一些一些鏈接textlinks來獲得正確的videoID。

<ul id="sjvslider"> 
<li><a href="#" rel="1">VIDEO 1</a></li> 
<li><a href="#" rel="2">VIDEO 2</a></li> 
</ul> 

最後我想要做的就是用戶點擊這些鏈接之一,並播放視頻,在視頻停止播放我希望它消失,因爲我有我想要的視頻下方的背景圖像後再次顯示。

有沒有辦法做到這一點與jQuery,也許訪問YouTube的API?

回答

3

是的,你想添加一個事件監聽器使用API​​的player.addEventListener()方法,並監聽onStateChange事件。它根據播放器的狀態(播放,暫停,結束等)播放一個數字(0表示停止,2表示暫停等)。當該事件由「停止」狀態觸發時,您可以將jQuery函數觸發爲.hide().remove()或任何電影容器。 (player.addEventListner()文檔是正確的以上這個頁面上的錨點,FYI,很容易錯過,否則)。

編輯:請注意,您需要啓用嵌入式視頻的YouTube API,如here所述。

+0

是的,我補充說。我想我只是有點困惑如何使用jQuery語法添加事件偵聽器。我會看看你的鏈接,看看我能否得到它的工作。 – Robbiegod

+0

所以我採取了第二個路徑,我有一個頁面只使用javascript + youtube api。我可以通過將videoID傳遞到包含swfObject所有有趣內容的函數來獲取一個視頻加載到播放器中。當我點擊我的第一個鏈接時,視頻加載,我從YouTube的API獲得一些反饋。大!但是當我點擊第二個鏈接加載下一個視頻時,沒有任何反應。我只想寫一次將swf加載到位的函數,當它到達結尾時,它就會消失。有什麼建議麼? – Robbiegod

+0

我開始使用名爲jQuery.tubeplayer.js的jquery插件。它有一個名爲「onPlayerEnded」的參數 - 所以我有一個函數可以刪除持有youtube視頻的div容器。所以除了現在當我點擊播放列表中的下一個拇指時,它的工作效果很好,它無法找到加載電影的ID。也許我需要刪除,然後將其添加回來,空?有什麼想法嗎? – Robbiegod