2012-02-07 66 views

回答

10

有一個YouTube JavaScript API提供事件回調。

不幸的是,沒有辦法直接檢測點擊事件(至少我沒有意識到任何)。但是,您可以檢測您可以使用的播放器狀態變化onStateChange

首先,你需要通過使用一個特殊的URL嵌入它能夠在播放器的JS API:

http://www.youtube.com/v/VIDEO_ID?version=3&enablejsapi=1 

然後,你需要創建一個事件處理函數:

function player_state_changed(state) { 
    /* 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). 
    */ 

    if (state == 1 || state == 2) { 
    alert('the "play" button *might* have been clicked'); 
    } 

} 

最後,您需要確保在電影狀態發生變化時處理程序被調用:

document.getElementById('MY-PLAYER-ID').addEventListener('onStateChange', 'player_state_changed'); 
+0

因爲我是一個noob在這裏:我會在我的js文件(或HTML)中使用什麼代碼來利用該事件? – 2012-02-07 23:55:06

+0

我已經擴展了我的答案,希望現在會更有幫助。 – 2012-02-08 00:50:47

+0

這是什麼意思「MY-PLAYER-ID」? – Serge 2016-03-18 15:32:02

0

您需要在播放器上註冊一個事件監聽器以調用您的stopSlide函數。下面的代碼行應該爲你做(首先你必須用適當的值替換兩個「」字符串「 - 嵌入式播放器的ID和要調用的函數的名稱,例如:」 stopSlide「):

document.getElementById("_idOfEmbeddedPlayerElement_").addEventListener("onStateChange", "_nameOfFunctionToCall_");` 
+0

這會觸發每個事件的回調函數,如提示,緩衝區,播放,暫停,停止,結束。 – 2012-02-09 19:42:08

+0

我們應該搜索什麼「嵌入式播放器的ID」? youtube視頻的