2011-08-24 69 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