2013-08-25 141 views
0

我試圖製作一個按鈕來開始在播放器上播放視頻。
如果按控制欄上的「正在播放」,則播放器正在顯示並正常工作。
但我的a href link開始播放不起作用。
play()不會被解僱。爲什麼?爲什麼這不會被解僱?

<script> 
    function onYouTubePlayerReady(playerId) { 
     ytplayer = document.getElementById("myytplayer"); 
    } 

    function play() { 
    if (ytplayer) { 
    ytplayer.playVideo(); 
    } 
} 
</script> 

    <script type="text/javascript" src="swfobject.js"></script>  
    <div id="ytapiplayer"> 
    You need Flash player 8+ and JavaScript enabled to view this video. 
    </div> 

    <script type="text/javascript"> 

    var params = { allowScriptAccess: "always" }; 
    var atts = { id: "myytplayer" }; 
    swfobject.embedSWF("http://www.youtube.com/v/P5_GlAOCHyE?enablejsapi=1&playerapiid=ytplayer", 
         "ytapiplayer", "425", "356", "8", null, null, params, atts); 

    </script> 

    <a href="javascript:void(0);" onclick="play();">Play</a> 
+0

檢查您的瀏覽器控制檯任何錯誤 –

+0

@ArunPJohny啊,這太可笑了。它在FireFox上工作,但在Safari上工作。爲什麼它不支持Mac? – MKK

+0

@SalmanA爲什麼這不是必需的?那麼函數'onYouTubePlayerReady'如何被調用呢? 注意:我沒有使用'swfobject'庫,之前

回答

0

與Flash對象通話可能很困難。這裏是我用來發送消息的代碼:

function runFlashFunction(flashName, funcName) { 
    var 
    od = document[flashName], 
    ow = window[flashName]; 
    // flash isn't happy with o=func;o(); syntax 
    try { 
     if(od && !!(od[funcName])) { 
      return document[flashName][funcName](); 
     } 
     if(ow && !!(ow[funcName])) { 
      return window[flashName][funcName](); 
     } 
     if(ow && ow.length && !!(ow[0]) && !!(ow[0][funcName])) { 
      return window[flashName][0][funcName](); 
     } 
     return void 0; 
    } catch(ex) { 
     return void 0; 
    } 
} 

爲什麼這一切?因爲某些瀏覽器使用不同的方式訪問Flash內容。最後一個可能不是必需的,但我確定它。

此外,您的鏈接使用不推薦的樣式。這是更好的:

<a href="#" onclick="play();return false">Play</a> 

甚至更​​好:分配在JavaScript中的回調,而不是HTML:

$(function(){ 
    $('#playLink').click(function(){ // name the link playLink (or whatever) 
     play(); 
     return false; 
    }); 
}); 
+0

謝謝。但是你的解釋並不談論需要什麼代碼。 – MKK

0

儘量不要使用全局變量

var ytplayer = null; 
function onYouTubePlayerReady(playerId) { 
    ytplayer = document.getElementById("myytplayer"); 
} 

function play() { 
    if (ytplayer) { 
    ytplayer.playVideo(); 
    } 
} 
+0

它仍然不會工作:( – MKK