2014-03-26 50 views
1

是否有任何方法來檢測getCurrentTime()中的時間變化YouTube API如何檢測youtube中的變化getCurrentTime()?

目的:在我的頁面中播放單個視頻的時間有限(< 1分鐘),然後轉到下一個視頻。

我在想使用object.watch,但它只適用於變量而不是函數。

我也嘗試綁定原始源代碼https://s.ytimg.com/yts/jsbin/www-widgetapi-vfl9twtxR.js中的內容,但它太複雜了。

+0

當然它太複雜了,因爲它已經被縮小了,人類很難解釋它... –

回答

0

因爲YouTube播放器被封裝在一個iFrame中,所以您依賴於播放器所公開的內容,並且當他們通過getCurrentTime()函數公開當前時間時,他們沒有暴露任何時間引發的任何事件可能會更新(實際上,時間僅更新爲暴露函數每秒6或7次,而且並不總是一致的)。

所以你唯一的選擇是設置一個JavaScript計時器。很多方法可以做到這一點;一個簡單的會是這樣的:

setInterval(function(){ 
    // here you'd raise some sort of event based on the value of getCurrentTime(); 
    },100); // polling 8 times a second, to make sure you get it every time it changes. 

隨着postMessage的距離的iFrame並不總是完全一致的,你可以有這個間隔定時器更大。或者你可以使用像requestAnimationFrame這樣的技術來輪詢每秒60次。