为什么 YouTube JavaScript 播放器 API 打开一个与我的代码不同的 URL,并且只播放播放列表的第一个视频?
Why YouTube JavaScript Player API open a different URL than the one in my code, and just play the first video of a playlist?
这是我的第一个post,希望我遵守所有规则。
我想在我的网站页面上发布:
随机播放/静音/自动播放 youtube 播放列表。
我使用了 AS3 方法,带有 SWFObject。
以下代码一切正常,但几周后,播放器没有检测到我的播放列表,只播放了第一个视频。
在代码中,URL 是:
https://www.youtube.com/v/HuIGf4IJzdM&list=PLo-QIlIZx6myBxEysxrWoE-f58-psKGji
但是当我打开该页面的页面时,它会打开以下内容link:
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>
如果有人能帮我找到解决这个问题的方法,非常感谢!!
...the player doesn't detect my playlist and just play the first video.
Youtube 已转向更新的 iFrame API,并且允许播放列表。
尝试粘贴以下示例代码 here(单击“查看结果”)
<!DOCTYPE html>
<html>
<body>
<iframe width="700" height="400"
src="https://www.youtube.com/embed/HuIGf4IJzdM?list=PLo-QIlIZx6myBxEysxrWoE-f58-psKGji">
</iframe>
</body>
</html>
看看它在 <iframe>
标签中的表现如何?不是 SWF,不是 JS,只是使用 iFrame。您必须在您的网站代码中添加一个类似的标签(删除并替换您显示的 script
代码)。
注释:
- 另请注意 iFrame url 以
https://www.youtube.com/embed/
这给了你 HTML5 播放器
这意味着它也可以在移动设备上使用。网站访问者使用电话或
平板可以看。这是您所有网站的最佳工作选择
访客。
- 如果你真的想在 iFrame 中使用 Flash,那么将开头改为
https://www.youtube.com/v/
这为您提供了 SWF 播放器
意味着它将需要 Flash Player 插件(在移动设备上不可用)。
使用手机或平板电脑访问您网站的人无法观看
(他们得到一个空白的白框或类似“插件不
可用”)。
我终于找到了一种使其与 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>
感谢您的帮助:-)
这是我的第一个post,希望我遵守所有规则。
我想在我的网站页面上发布: 随机播放/静音/自动播放 youtube 播放列表。
我使用了 AS3 方法,带有 SWFObject。
以下代码一切正常,但几周后,播放器没有检测到我的播放列表,只播放了第一个视频。
在代码中,URL 是: https://www.youtube.com/v/HuIGf4IJzdM&list=PLo-QIlIZx6myBxEysxrWoE-f58-psKGji
但是当我打开该页面的页面时,它会打开以下内容link: 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>
如果有人能帮我找到解决这个问题的方法,非常感谢!!
...the player doesn't detect my playlist and just play the first video.
Youtube 已转向更新的 iFrame API,并且允许播放列表。
尝试粘贴以下示例代码 here(单击“查看结果”)
<!DOCTYPE html>
<html>
<body>
<iframe width="700" height="400"
src="https://www.youtube.com/embed/HuIGf4IJzdM?list=PLo-QIlIZx6myBxEysxrWoE-f58-psKGji">
</iframe>
</body>
</html>
看看它在 <iframe>
标签中的表现如何?不是 SWF,不是 JS,只是使用 iFrame。您必须在您的网站代码中添加一个类似的标签(删除并替换您显示的 script
代码)。
注释:
- 另请注意 iFrame url 以
https://www.youtube.com/embed/
这给了你 HTML5 播放器 这意味着它也可以在移动设备上使用。网站访问者使用电话或 平板可以看。这是您所有网站的最佳工作选择 访客。 - 如果你真的想在 iFrame 中使用 Flash,那么将开头改为
https://www.youtube.com/v/
这为您提供了 SWF 播放器 意味着它将需要 Flash Player 插件(在移动设备上不可用)。 使用手机或平板电脑访问您网站的人无法观看 (他们得到一个空白的白框或类似“插件不 可用”)。
我终于找到了一种使其与 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>
感谢您的帮助:-)