我目前正在构建一个AngularJS应用程序(我知道它有点过时,但我对它有信心......)。
我的应用需要嵌入一个包含非常大的播放列表(大约1500个项目)的YouTube播放器,但我无法对其进行编码,以便实际嵌入超过200个项目。
我在网上搜索并用了一个月的时间来解决这个问题,但是我所读到的内容似乎都没有用,我曾经尝试过这种方法。
哦顺便说一句,我使用angular-youtube-embed来使youtube api与AngularJS一起工作。
这是我在控制器中关于如何构建播放器的代码
const home = this;
var inter = false;
var playlistArray;
var playListArrayLength;
var maxNumber;
var oldNumber = 0;
var NewNumber = 0;
home.playerVars = {
list: 'LLRmPG23-ao586bxbZFPpvmw',
rel : "0",
loop : "1",
origin : "http://www.youtube.com"
};
home.prsAction = function() {
playlistArray = home.bestPlayer.getPlaylist();
if (!inter){
playlistArray = home.bestPlayer.getPlaylist();
playListArrayLength = playlistArray.length;
maxNumber = playListArrayLength;
NewNumber = home.newRandomNumber();
home.bestPlayer.setShuffle(playlistArray)
home.bestPlayer.playVideoAt(home.newRandomNumber());
//home.bestPlayer.playVideo();
inter = true;
}else if(inter){
home.bestPlayer.stopVideo();
inter = false;
}
}
home.newRandomNumber = function() {
oldNumber = NewNumber;
NewNumber = Math.floor(Math.random() * maxNumber);
return NewNumber;
}
这里有一些线路可以让播放器播放列表的随机视频,并对播放器进行自举崩溃效果,所以不要注意它们。
以下是我在HTML部分中调用播放器的方式
<youtube-video id="player" player-vars="home.playerVars" player="home.bestPlayer" ng-model="home.bestPlayer"></youtube-video>
我真的需要让它发挥作用,所以如果有任何想法不要犹豫。
我可以制作一个傻瓜或小提琴来复制这个案子,但由于我没有任何错误或任何其他问题,只有200个项目的无聊限制,它有点无用。
提前感谢。 绝望的开发者
编辑:我制作了一个可以在播放器上重现我的实际问题/状态的侦探。https://plnkr.co/edit/vNL0J4M2eR1P3C1IxfZs?p=preview
正如你所看到的那样,它只能在播放器中加载197个项目(我之前看到的是199,但不确定)。
至于限制来自哪里:对我而言,它绝对来自youtube iframe API(因为我无法找到有关angular-youtube-embed库中限制的任何内容)。
编辑2:在google:https://developers.google.com/youtube/youtube_player_demo?hl=fr提供的链接中,当我输入播放列表ID并尝试加载时,我遇到了同样的问题。我认为这绝对是来自youtube API并没有解决方案。我将尝试编写解决方案代码。