首页 > 解决方案 > 如果列表中有私有或删除的视频,则播放列表无法完全加载

问题描述

在尝试在网站上实现臭名昭著的 YouTube Iframe API 时,我最近开始在加载新播放列表时遇到错误,因为存在无法再播放的视频,因为它们要么被隐藏要么被删除。

如果隐藏或删除的视频是播放列表中的第一个,播放器将拒绝完全加载而不是跳过有问题的项目,而如果您手动交换视频的顺序并说,将其移动到列表中的第二位,它会正确跳过不可用的视频并正确加载播放列表。遗憾的是,此修复只是暂时的,因为如果您通过 cuePlaylsit() 调用加载完全不相关的播放列表,然后加载第一个列表,其中不可用的视频仍位于列表中的第二位,则播放列表将再次无法加载,但这是时候让您看到刚刚加载失败的播放列表的预览了,其中第二项显示了我一开始加载第一个播放列表时最初跳过的错误视频..

在这些日子里,我多次尝试重写我的代码,但唯一的结论是 API 再次被窃听,我不知道如何为其计划解决方法

我尝试在这里隔离问题,以便您自己尝试:https ://jsfiddle.net/mytL2dka/

只需交换第一个数组中的第一个和第二个元素并尝试重新运行小提琴。现在应该正确加载播放列表。之后,您可以使用顶部的按钮在第二个、第三个和第一个数组之间循环,当单击通常会显示已加载播放列表内容的菜单图标时,您应该能够注意到该问题。我看到另一个人在浏览 youtube-iframe-api 标签时发布了有关 youtube 视频未正确加载的帖子,但由于缺乏声誉,我无法发表评论。我只是希望添加更多关于同一主题的问题将使该错误更加可见。

let player;

function onYouTubeIframeAPIReady() {
  player = new YT.Player('player', {
    width: '512',
    height: '288',
    playerVars: {
      'playlist': myArray.toString(),
    }
  });
}

const myArray = ["list", "of", "ids"]

标签: javascriptyoutube-iframe-api

解决方案


推荐阅读