我一直有同样的问题,我对你的小提琴做了一些改变,我能够得到它的工作。这里是JavaScript:
var slideshowContainer = $('#slideshow');
window.handlePlayerStateChange = function(state) {
switch (state) {
case 1:
// Video has begun playing/buffering
slideshowContainer.cycle('pause');
break;
case 3:
// Video has begun playing/buffering
slideshowContainer.cycle('pause');
break;
case 2:
// Video has been paused/ended
slideshowContainer.cycle('resume');
break;
case 0:
// Video has been paused/ended
slideshowContainer.cycle('resume');
break;
}
}
window.onYouTubePlayerReady = function(id) {
var player = $('#' + id)[0];
player.addEventListener('onStateChange', 'handlePlayerStateChange');
}
var videos = ['uCr--23_AW0', 'd8h5ZuPQWZw', 'ur1_aVRLLfA', 'rDcQtg6Bgvo', 'fgJ6DA50thw', 'MD3UldIQaUo', 'IwVpZGgWdWk', 'TvCUvVkGyqQ', 'FGzRvYU0e3Q'];
var params = {
allowfullscreen: 'true',
allowscriptaccess: 'always',
wmode: 'opaque'
};
for (var i = 0; i < videos.length; i++) {
var id = 'video-' + i;
var atts = {
id: id,
name: id
};
slideshowContainer.append($('<div/>')
.addClass('video-wrapper')
.append($('<div/>')
.attr('id', id)
)
);
swfobject.embedSWF('http://www.youtube.com/v/' + videos[i] + '?enablejsapi=1&playerapiid=' + id + '&version=3', id, '540', '375', '9.0.0', null, null, params, atts);
}
slideshowContainer.cycle({
fx: 'fade',
timeout: 8000,
next: '#next',
prev: '#prev'
});
和工作示例:http://jsfiddle.net/jackbrown/qqWT8/45/
我认为你缺少API的初始化字符串: “enablejsapi = 1” - 例如, “http://www.youtube.com/e/VIDEO_ID?enablejsapi=1&version=3”请参阅http://code.google.com/apis/youtube/js_api_reference.html – Mottie 2011-05-08 21:01:00
@fudgey我相信它在' flashvar enablejsapi:1'不是吗?我也尝试添加初始化字符串到swfobject嵌入调用,但它似乎不工作:'swfobject.embedSWF('http://www.youtube.com/v/'+ videos [i] +'&enablejsapi = 1',id,'540','375','9.0.0',false,flashvars,params);' – waffl 2011-05-08 22:46:09