javascript - 为什么 YouTube JavaScript Player API 打开与我的代码中的 URL 不同的 URL,并且只播放播放列表的第一个视频?

标签 javascript actionscript-3 youtube youtube-javascript-api playlist

这是我的第一篇文章,我希望我遵守所有规则。

我正在尝试在我的网站页面上发布: 随机播放/静音/自动播放 YouTube 播放列表。

我使用了 AS3 方法和 SWFObject。

使用以下代码一切正常,但几周以来,播放器检测不到我的播放列表,只播放第一个视频。

在代码中,URL 是: https://www.youtube.com/v/HuIGf4IJzdM& list=PLo-QilIZx6myBxEysxrWoE-f58-psKGji

但是当我打开该页面的页面时,它打开以下链接: https://www.youtube.com/v/HuIGf4IJzdM& list=o-QilIZx6myBxEysxrWoE-f58-psKGji

如果我没记错的话,这是代码,之前可以正常工作:

<script src="https://www.google.com/jsapi"></script>
<script src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<div id="ytapiplayer">You need Flash player 8+ and JavaScript enabled to view this video.</div>
<script type="text/javascript">
google.load("swfobject", "2.2");
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.playVideo();
ytplayer.setShuffle(true);
ytplayer.mute();
}
var params = {allowScriptAccess: "always" , allowFullScreen : "true"};
var atts = { id: "myytplayer" };

swfobject.embedSWF("https://www.youtube.com/v/HuIGf4IJzdM&list=PLo-QIlIZx6myBxEysxrWoE-f58-psKGji&index=0&feature=plpp_play_all?enablejsapi=1&playerapiid=ytplayer&allowFullScreen=true&version=3&loop=1&autohide=1",
"ytapiplayer", "50%", "50%", "10", null, null, params, atts)
</script>

如果有人能帮助我解决这个问题,非常感谢!!

最佳答案

我终于找到了一种让它与 iframe 一起工作的替代方法。

这是代码:

<div id="player"></div>

<script>

  var tag = document.createElement('script');

  tag.src = "https://www.youtube.com/iframe_api";
  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      height: '100%',
      width: '100%',
      events: {
        'onReady': onPlayerReady
      }

    });
  }

  function onPlayerReady(event) {

    event.target.loadPlaylist({'listType': 'playlist',
                               'list': 'PLo-QIlIZx6myBxEysxrWoE-f58-psKGji',
                               'index': '0'
                              });
      event.target.mute();
      event.target.setLoop(true);
    setTimeout( function() { 
        event.target.setShuffle(true); 
    }, 2000);
      }
</script>

感谢您的帮助:-)

关于javascript - 为什么 YouTube JavaScript Player API 打开与我的代码中的 URL 不同的 URL,并且只播放播放列表的第一个视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36035124/

相关文章:

actionscript-3 - 使用 AS3 加载另一个 swf 文件

apache-flex - Flex datagrid组件问题

1 个视频超出了 Youtube API 配额

ios - 如何从 iPhone 应用程序中过滤 YouTube 内容 Objective-c

javascript - 延长 setTimeout 计时器的超时持续时间

javascript - 是否有可能使用 oAuth 制作一个 100% 基于浏览器的 javascript 推特客户端(根本没有后端)?

JavaScript 页面缩放

actionscript-3 - AS3 除整数

javascript - 是否可以在youtube.com中控制嵌入式视频播放器?

javascript - 开发小书签时需要考虑哪些设计和安全注意事项?