2

如果这是解决此问题的错误地点,请原谅我,但 Google 已弃用的开发人员论坛建议我去这里。

以下是一些用于演示问题的高度简化的代码:

<!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>
4

2 回答 2

1

我在本周的编码冲刺中偶然发现了这个问题:

loadPlaylist/cuePlaylist 方法需要list 参数和 listType 参数(在文档中不是很清楚)。

所以,代码:

player.loadPlaylist(
    {
         list:  'PL63FA01F86C3FE49A',
         listType: 'playlist'
    }
);

应该可以正常工作,无论是 SWF 还是 HTML 嵌入。Jeff Posnick 关于他对这个问题的回答的建议当然也适用,但我已经测试过它在这两种情况下都可以工作。

listType 可以是“list”、“search”或“user_uploads”,list 分别表示列表 id 或视频 id 数组、搜索查询或用户 id。

于 2013-05-03T17:08:57.373 回答
0

在进入问题之前对您的代码进行一些评论:首先,如果您确定需要使用 AS3 chromeless 播放器,您确实应该使用SWFObject将其添加到您的页面中,以确保同时使用正确的<object><embed>标签. 如果您只指定<object>标签,那么它只能在 Internet Explorer 中使用。

此外,您onYouTubePlayerReader(playerId)的代码中应该有一个处理程序来检测播放器何时完全加载并准备好响应 API 调用。这比尝试通过window.setTimeout().

关于您的实际问题,我不确定无铬 AS3 播放器是否支持使用播放列表。这段代码以前工作过,最近停止了吗?我想您使用iframe 嵌入式播放器并指定controls=0您是否真的不想要控件(但隐藏控件会影响播放列表体验)会获得更好的体验。

于 2013-02-13T16:58:20.820 回答