请原谅我,如果这个问题出现在错误的地方,但谷歌不赞成的开发者论坛建议我去这里。
以下是一些用于演示此问题的大量简化代码:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript">
$(
function() {
/*
This one second delay is just there to give the player time
to load. It's more complicated in my proper implementation.
*/
window.setTimeout(
function() {
var player = document.getElementById('player');
/*
Shocker, it doesn't work, regardless of playlist ID.
*/
player.loadPlaylist(
{
list: 'PL63FA01F86C3FE49A'
}
);
},
1000
);
}
);
</script>
</head>
<body>
<object data="http://www.youtube.com/apiplayer?enablejsapi=1&version=3" height="360" id="player" width="600">
<param name="AllowScriptAccess" value="always">
<param name="movie" value="http://www.youtube.com/apiplayer?enablejsapi=1&version=3">
</object>
</body>
</html>
答案 0 :(得分:1)
本周,我在编码冲刺时偶然发现了这个问题:
loadPlaylist / cuePlaylist方法需要 list参数和listType参数(在文档中不是很清楚)。
所以,代码:
player.loadPlaylist(
{
list: 'PL63FA01F86C3FE49A',
listType: 'playlist'
}
);
使用SWF和HTML嵌入都可以正常工作。杰夫波斯尼克对这个问题的回答的推荐当然适用,但我已经测试过它在两种情况下都有效。
listType可以是&#39; list&#39;,&#39; search&#39;或者&#39; user_uploads&#39;和list分别表示视频ID的列表ID或数组,搜索查询,用户ID。
答案 1 :(得分:0)
在回答问题之前对你的代码做了一些评论:首先,如果你确定需要使用AS3无边框播放器,你真的应该使用SWFObject将它添加到你的页面以确保使用了正确的<object>
和<embed>
标记。如果您只指定<object>
标记,那么它只能在Internet Explorer中使用。
此外,您的代码中应该有一个onYouTubePlayerReader(playerId)
处理程序,以检测播放器何时完全加载并准备好响应API调用。这比通过window.setTimeout()
尝试这样做要可靠得多。
关于您的实际问题,我不确定无格式AS3播放器曾支持使用播放列表。这段代码以前是否最近停止了?我想你如果你真的不想要控件(但隐藏控件会从播放列表体验中删除),那么使用iframe embedded player和指定controls=0
会有更好的体验。