Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取对youtube播放列表的引用_Javascript_Youtube_Jsfiddle_Playlist_Jsapi - Fatal编程技术网

Javascript 获取对youtube播放列表的引用

Javascript 获取对youtube播放列表的引用,javascript,youtube,jsfiddle,playlist,jsapi,Javascript,Youtube,Jsfiddle,Playlist,Jsapi,我无法获取对YouTube播放列表视频的引用 这不起作用 我甚至不知道在播放列表中启用jsapi是真的吗 var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(t

我无法获取对YouTube播放列表视频的引用

这不起作用

我甚至不知道在播放列表中启用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"); });
请参见下面url中的XML格式,您可以通过在API url中使用“&alt=jsonc”以JSON格式获取相同的数据-

2) 创建两个iFrame或容器,您需要在其中放置两个youtube播放器。第一个是播放器,你应该在每10分钟左右暂停一次,暂停时你应该隐藏第一个容器。第二个实例应该持有播放器,该播放器应该拥有第二个视频,该视频应该播放到完成,在完成时隐藏该容器并再次显示第一个容器

请参阅有关如何播放和暂停youtube视频的帖子-

3) 大约每10分钟后,从播放列表的JSON数据中获取下一个视频链接和详细信息,并将其链接到第二个容器暂停并隐藏第一个,播放并显示第二个


我希望通过这种方式,您可以实现您的要求。

您到底想用youtube播放列表做什么?我想在需要时停止视频,例如,每10分钟停止一次,并执行一些功能,然后继续播放视频。我想我需要从播放列表中播放视频中获取对象。我试过了,但它不起作用。我需要停止视频,无论播放列表中是什么视频。只需点击“停止视频”和任何播放视频停止。这是真的吗?但出于真正的原因,我希望视频每10分钟停止一次,它会在前一个视频下显示另一个视频。好吧,举个例子,就是这样。然后,当第二个视频完成时,将其关闭。然后播放第一个视频,播放时间是停止的。@slokerantonov请看我的更新答案,这应该会让你上电视track@slokerantonov如果这对您有帮助,请接受该解决方案作为答案,这样其他人也可以从中受益,如果他们有相同的要求