是否有任何方法來檢測getCurrentTime()中的時間變化YouTube API?如何檢測youtube中的變化getCurrentTime()?
目的:在我的頁面中播放單個視頻的時間有限(< 1分鐘),然後轉到下一個視頻。
我在想使用object.watch,但它只適用於變量而不是函數。
我也嘗試綁定原始源代碼https://s.ytimg.com/yts/jsbin/www-widgetapi-vfl9twtxR.js中的內容,但它太複雜了。
是否有任何方法來檢測getCurrentTime()中的時間變化YouTube API?如何檢測youtube中的變化getCurrentTime()?
目的:在我的頁面中播放單個視頻的時間有限(< 1分鐘),然後轉到下一個視頻。
我在想使用object.watch,但它只適用於變量而不是函數。
我也嘗試綁定原始源代碼https://s.ytimg.com/yts/jsbin/www-widgetapi-vfl9twtxR.js中的內容,但它太複雜了。
因爲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次。
第一個例子,在
https://developers.google.com/youtube/iframe_api_reference#Getting_Started
讓你幾乎完全正是你需要的上手。一旦視頻開始,代碼將啓動一個計時器,然後等待6秒鐘停止視頻。你希望在6秒後停止視頻,而不是在60秒後在同一個div上觸發一個新的YT.Player實例。
當然它太複雜了,因爲它已經被縮小了,人類很難解釋它... –