2010-05-21 108 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

相关问题