2010-05-21 97 views
1

因此,在項目中,我一直在使用YouTube API向無鉻播放器添加視頻(獲得自定義按鈕,一切正常,沒有問題)。將多個YouTube視頻嵌入到無鉻播放器中cue

它加載它從數據庫(Codeigniter,PHP)獲取的YouTube管理員標識。 但是我想看到的是:不是加載1個視頻,而是喜歡在該玩家的提示中添加我從數據庫中獲得的所有視頻。

所以只有一個屏幕,從dbase中獲取的第一個視頻首先播放,當它完成第二次獲取加載時最好也循環播放。有什麼辦法可以做到這一點?

我的第一個猜測是用youtube id的某處和狀態改變(當'video stop'-event被觸發時)保存數組,從數組中加載下一個id。還沒有嘗試過這一點,因爲id喜歡如果提示只是被填充到init,所以它不必在視頻結束後加載。這可能嗎?

回答

1

首先,您必須使用Youtube API版本2來激活新的statechange函數。

這是給你的代碼:

var video_list = [ 
    '21OH0wlkfbc', 
    'InZNBcJTmWs', 
    'iIzqYiRo01E', 
    'ZYmADPVEqU4' 
]; 
var video_current = 0; 

function onYouTubePlayerReady() { 
    var o = document.getElementById('ytplayer2_object'); 
    if(o) { 
     o.addEventListener("onStateChange", "ytplayer_statechange"); 
    } 
} 
function ytplayer_statechange(state) { 
    // 0 => video ended 
    if (state == 0) { 
     video_current++; 
     video_current %= video_list.length; 
     ytplayer_loadvideo(video_list[ video_current ]); 
    } 
} 
+1

不再需要,但是這確實是解決這個正確的方法。我已經知道了,仍然是一個很大的謝謝(我忘了所有關於這個帖子XD) – Quaze 2010-12-09 19:24:12

+0

我知道...但我認爲有人需要它... :) – KimKha 2010-12-20 15:32:04

相關問題