2013-09-27 63 views
0

我有一个脚本用于嵌入式YouTube视频检查的嵌入式YouTube视频是否已经开始

,这里是我的脚本

<object width="500" height="375"> 
    <param name="movie" 
       value="http://www.youtube.com/v/mLDTfRDM_LE?version=3&autohide=1&showinfo=0&enablejsapi=1"> 
     </param> 
    <param name="allowScriptAccess" value="always"> 
     </param> 
    <embed src="http://www.youtube.com/v/mLDTfRDM_LE?version=3&autohide=1&autoplay=1&showinfo=0&rel=0&enablejsapi=1" 
       type="application/x-shockwave-flash" 
       allowscriptaccess="always" 
       width="500" height="375"> 
     </embed> 
     </object> 

现在我要检查whther视频已经开始或没有,并基于该我想提醒

"Hii video has started" 

有这样的问题类似的联系 https://stackoverflow.com/questions/16215658/checking-whether-an-embedded-youtube-video-has-started

,但我有不同的脚本..

请帮我出这个

回答

0

的总体思路是这样的:

1)你需要把id属性<embed>元素 - 这将允许你听球员事件。您将在下一步中使用它。这个例子假设嵌入ID为“myPlayer”

2)在您的网页上运行此脚本,只是收身前:

<script> 
function onYouTubePlayerReady(playerId) { 
     ytplayer = document.getElementById("myPlayer"); 
     ytplayer.addEventListener("onStateChange", "onytplayerStateChange"); 
} 

function onytplayerStateChange(newState) { 
     if (newState=="1") { 
       alert("Hii video has started"); 
     } 
} 
</script> 

onYouTubePlayerReady功能会自动运行,当玩家被加载并准备走;这个脚本会在那个时候建立一个监听器,如果它听到一个状态改变事件,告诉你这个视频正在播放,它会做你想要的警报。

请注意几件非常重要的事情。这种方法往往是不一致的IE浏览器 - 你可以追加以此为对象元素的属性:

classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 

但一个好得多的解决办法是不使用静态嵌入代码,而是使用的SWFObject 。按照此文件:https://developers.google.com/youtube/js_api_reference#Examples

另一种可能性,如果你使用jQuery,是tubePlayer插件:http://www.tikku.com/jquery-youtube-tubeplayer-plugin

当然,我最大的建议是不要使用AS3嵌入所有,而是使用一个iFrame: https://developers.google.com/youtube/iframe_api_reference

相关问题