2013-09-27 105 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

相關問題