【问题标题】:Get reference to youtube playlist获取对 youtube 播放列表的参考
【发布时间】:2015-03-03 10:35:24
【问题描述】:

我无法参考 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");
}

【问题讨论】:

  • 您到底想对 youtube 播放列表做什么?
  • 我想在需要的时候停止视频,例如每隔 10 分钟做一些功能,然后继续播放视频。我想我需要从播放列表中播放视频中获取对象。

标签: javascript youtube jsfiddle playlist jsapi


【解决方案1】:

我认为下面的代码可以帮助您入门,因为我没有正确理解您想要实现的目标。但我知道您需要播放和暂停视频。下面是我在项目中某处使用的代码-

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 格式获取相同的数据- https://developers.google.com/youtube/2.0/developers_guide_protocol_playlists#Retrieving_a_playlist

2) 创建两个 iframe 或容器,您需要在其中保留两个 youtube 播放器。第一个将是播放器,您应该每 10 分钟左右暂停一次,暂停时您应该隐藏第一个容器。第二个实例应该包含应该有第二个视频的播放器,该视频应该播放直到完成,完全隐藏这个容器并再次显示第一个容器。

查看这篇关于如何播放和暂停 youtube 视频的帖子-How to pause a YouTube player when hiding the iframe?

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

我希望通过这种方式你可以达到你的要求。

【讨论】:

  • 我试过了jsfiddle 不行。无论播放列表中有什么视频,我都需要停止视频。只需单击“停止视频”,任何正在播放的视频都会停止。是真的吗?
  • 但出于真正的原因,我希望该视频每 10 分钟停止一次,它会在上一个视频下显示另一个视频。好的,例如它就是这样做的。然后当第二个视频完成后,关闭它。然后播放第一个视频,并停止播放。
  • @slokerantonov 请查看我的更新答案,这应该会让你走上正轨
  • @slokerantonov 如果这对您有帮助,请接受该解决方案作为答案,以便其他有相同要求的人也可以从中受益
猜你喜欢
  • 2013-04-30
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-25
  • 1970-01-01
  • 2017-08-19
相关资源
最近更新 更多