【问题标题】:How to Play a Playlist using YouTube JavaScript API如何使用 YouTube JavaScript API 播放播放列表
【发布时间】:2011-07-04 15:13:57
【问题描述】:

我正在尝试使用今年 1 月推出的用于 iframe 嵌入的 JavaScript API 播放 youtube 播放列表。 http://apiblog.youtube.com/2011/01/introducing-javascript-player-api-for.html

注意下面的 iframe 标签和带有“/p”的链接,表示它是一个播放列表。

<iframe src="http://www.youtube.com/embed/p/ID" width="100%" height="500" frameborder="0"></iframe>

但是,即使在 http://code.google.com/apis/youtube/iframe_api_reference.html 的文档中,我也无法找到如何使用 onYouTubePlayerAPIReady() 调用播放播放列表。

【问题讨论】:

    标签: youtube youtube-api


    【解决方案1】:

    讨论了一个不需要 YouTube IFrame (JavaScript) API 的简单解决方案 Embed YouTube Videos, Playlists and More with IFrame Embeds。您可以从 YouTube 上的一个视频中复制视频嵌入代码(iframe 版本),然后进行如下调整:

    <iframe
        width="560"
        height="315"
        src="http://www.youtube.com/embed?listType=playlist&list=PASTE_YOUTUBE_PLAYLIST_ID&autoplay=1"
        frameborder="0"
        allowfullscreen
    ></iframe>
    

    请注意,没有视频 ID... 相反,listTypelist 参数指示播放器加载播放列表。对于您的特殊要求,请添加 autoplay=1 以确保视频自动播放而无需 JavaScript 代码。

    【讨论】:

    • 注意:由于此 iframe 未连接到 IFrame API,因此您无法使用 Javascript 引用播放器,例如 player.stop()
    【解决方案2】:

    由于此处未为使用播放列表 ID 的播放列表提供正确答案(即不对视频列表进行硬编码),如果您仍希望使用 Javascript Youtube IFrame API,则可以使用此方法。如果在 playerVars 中指定了播放列表 ID,则可以省略 videoID,如下所示:

    function onYouTubePlayerAPIReady() 
    {
            player = new YT.Player('player', 
            {
              height: '390',
              width: '640',
              playerVars: 
              {
                listType:'playlist',
                list: '<YOURPLAYLISTID>'
              }
            });
    }
    

    希望它对正在寻找它的人有所帮助(就像我一样)。

    【讨论】:

    • 正是我需要的,谢谢。花了很长时间试图弄清楚如何在不先加载视频的情况下按 ID 加载播放列表。
    • 这会产生任何配额,还是0配额指令?
    • YouTube 自己的文档对此并不清楚。 @shell 当您找到放置 API 密钥的位置时,我会告诉您对配额的影响;)
    • @jbx 谢谢它的工作原理你有没有改变播放列表的等价物,因为 loadVideoByUrl 似乎与 getPlaylist 不兼容,请参阅jsfiddle.net/ogwd8yf6/11
    【解决方案3】:

    我找到了答案。

    只需将“播放列表”添加到您的 playerVars 和播放列表字符串|数组。

    playerVars: { '自动播放': 0, '控制': 1, '播放列表':['your_video_id', '...']},

    像下面的例子:

    var player;
    function onYouTubePlayerAPIReady() {
    player = new YT.Player('player', {
      height: '390',
      width: '640',
      videoId: 'your_video_id',
      playerVars: { 'autoplay': 0, 'controls': 1, 'playlist':['your_video_id', '...']},
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
    }
    

    【讨论】:

    • 按播放列表ID怎么玩?
    • 我前段时间改变了主意,停止使用上面的这个 IFrame API。我改成JavaScript API我直接从youtube播放器url加载播放列表:`swfobject.embedSWF("youtube.com/v/… ... &playlist=yourPlayList ...`让播放器管理视频。
    • @Moreno:切换回 IFrame,尤其是如果您希望您的视频在移动设备上播放。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 2011-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 2012-01-19
    相关资源
    最近更新 更多