获取对 youtube 播放列表的引用
Get reference to youtube playlist
我无法引用 YouTube 播放列表视频。
这行不通JSFIDDLE
我什至不知道在播放列表中启用jsapi是真的吗?
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('movie_player', {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady() {
console.log("hey Im ready");
//do whatever you want here. Like, player.playVideo();
}
function onPlayerStateChange() {
console.log("my state changed");
}
我认为下面的代码可以帮助您入门,因为我没有正确理解您想要实现的目标。但我知道您需要播放和暂停视频。下面是我在项目中某处使用的代码-
function toggleVideo(state) {
if(state == 'pause'){
document.getElementById('movie_player').contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
}
else {
document.getElementById('movie_player').contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
}
}
更新
我现在完全明白了,下面是你如何实现这个的步骤-
1) 使用以下代码获取播放列表的 Json 数据-
var playlistId = 'PL1HIp83QRJHRbmJl0sS0CLOuIKCBCB76L';
$.getJSON('https://gdata.youtube.com/feeds/api/playlists/'+ playlistId +'?v=2&alt=jsonc',function(data,status,xhr){
// save json data of the playlist
}).error(function() { alert("404 Error"); });
参见下面的XML格式url,你可以在API中使用“&alt=jsonc”得到JSON格式的相同数据url-
https://developers.google.com/youtube/2.0/developers_guide_protocol_playlists#Retrieving_a_playlist
2) 创建两个 iframe 或容器,您需要在其中保留两个 youtube 播放器。第一个是你应该每隔 10 分钟左右暂停一次的播放器,暂停时你应该隐藏第一个容器。第二个实例应该包含应该播放第二个视频的播放器,该播放器应该播放直到完成,完成后隐藏此容器并再次显示第一个容器。
请参阅此 post,了解如何播放和暂停 YouTube 视频 - How to pause a YouTube player when hiding the iframe?
3) 每隔 10 分钟左右,从播放列表的 JSON 数据中获取下一个视频 link 和详细信息,并将其 link 到第二个容器暂停和隐藏第一个和播放和显示第二个。
希望通过这种方式你能达到你的要求。
我无法引用 YouTube 播放列表视频。
这行不通JSFIDDLE
我什至不知道在播放列表中启用jsapi是真的吗?
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('movie_player', {
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady() {
console.log("hey Im ready");
//do whatever you want here. Like, player.playVideo();
}
function onPlayerStateChange() {
console.log("my state changed");
}
我认为下面的代码可以帮助您入门,因为我没有正确理解您想要实现的目标。但我知道您需要播放和暂停视频。下面是我在项目中某处使用的代码-
function toggleVideo(state) {
if(state == 'pause'){
document.getElementById('movie_player').contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
}
else {
document.getElementById('movie_player').contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
}
}
更新 我现在完全明白了,下面是你如何实现这个的步骤-
1) 使用以下代码获取播放列表的 Json 数据-
var playlistId = 'PL1HIp83QRJHRbmJl0sS0CLOuIKCBCB76L';
$.getJSON('https://gdata.youtube.com/feeds/api/playlists/'+ playlistId +'?v=2&alt=jsonc',function(data,status,xhr){
// save json data of the playlist
}).error(function() { alert("404 Error"); });
参见下面的XML格式url,你可以在API中使用“&alt=jsonc”得到JSON格式的相同数据url- https://developers.google.com/youtube/2.0/developers_guide_protocol_playlists#Retrieving_a_playlist
2) 创建两个 iframe 或容器,您需要在其中保留两个 youtube 播放器。第一个是你应该每隔 10 分钟左右暂停一次的播放器,暂停时你应该隐藏第一个容器。第二个实例应该包含应该播放第二个视频的播放器,该播放器应该播放直到完成,完成后隐藏此容器并再次显示第一个容器。
请参阅此 post,了解如何播放和暂停 YouTube 视频 - How to pause a YouTube player when hiding the iframe?
3) 每隔 10 分钟左右,从播放列表的 JSON 数据中获取下一个视频 link 和详细信息,并将其 link 到第二个容器暂停和隐藏第一个和播放和显示第二个。
希望通过这种方式你能达到你的要求。