我有像这样嵌入youtube视频:
<object height="25" width="610"><param name="movie"
value="http://www.youtube.com/v/GBApIkX0YN4&hl=en_US&color1=0xf4f4f4&color2=0xffffff&hd=0&fs=0&enablejsapi=1&playerapiid=ytplayer">
</param>
<param name="allowFullScreen" value="true">
</param>
<param name="allowscriptaccess" value="always">
</param>
<embed src="http://www.youtube.com/v/GBApIkX0YN4&hl=en_US&color1=0xf4f4f4&color2=0xffffff&hd=0&fs=0" height="25" width="610" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always">
</embed></object>
在youtube示例中,他们使用以下代码查看玩家何时更改状态。
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
function onytplayerStateChange(newState) {
alert("Player's new state: " + newState);
}
当我把它放到我的页面时,当我播放暂停视频时没有任何反应(我认为它应该是一个警告,说明状态是什么。)
我想使用javascript“GBApIkX0YN4”获取其ID,以便我可以使用youtube api并查看视频何时结束以调用javascript函数。
是否有更简单的方法来判断视频何时结束?
如果没有,我将如何获得其ID?
我看到另一个人用过
youtubeID = v.attr('src').match(/youtube\.com.*?v[\/=](\w+)/)[1];
但我不知道如何从嵌入代码中找到网址。
由于
答案 0 :(得分:0)
您应该使用Youtube Javascript API这可以通过添加&enablejsapi=1
在您的嵌入网址中启用,以便您的网址如下所示:
http://www.youtube.com/v/GBApIkX0YN4&hl=en_US&color1=0xf4f4f4&color2=0xffffff&hd=0&fs=0&enablejsapi=1
要调用播放器API方法,必须首先获得对要控制的播放器对象的引用。这可以通过调用or标签上的getElementById()获取播放器对象来完成。
然后,您可以在播放器对象上设置onStateChange
事件,该事件将根据视频的状态返回值。您需要检查值为0,表示视频已结束。
来自文档:
This event is fired whenever the player's state changes. Possible values are unstarted (-1), ended (0), playing (1), paused (2), buffering (3), video cued (5). When the SWF is first loaded it will broadcast an unstarted (-1) event. When the video is cued and ready to play it will broadcast a video cued event (5).
我希望有所帮助。