我将 YouTube 的 API 用于嵌入式视频。我对每个页面上的每个视频都使用完全相同的 API 代码。但是在一个特定的视频上,它会加载字幕,但仅限于第一次运行。点击刷新,字幕消失。清除缓存和 cookie,它们又回来了。
为什么一个视频会出现这种行为,而其他共享相同代码的视频却没有?
好的,这是 HTML 标记:
<div id="youTube" data-video-id="[YouTube video ID here]"></div>
这是 API 代码:
window.onYouTubeIframeAPIReady = function () {
player = new YT.Player('youTube', {
videoId: $("#youTube").data("videoId"),
playerVars: {
'rel': 0,
},
events: {
'onReady': function () {
player.unMute();
player.setVolume(35);
player.playVideo();
},
'onStateChange': function () {
if (player.getPlayerState() == 2 && !counted) {
viewCount++;
counted = true;
}
}
}
});
}
哦,这里还有一些相关信息:
该错误在任何客户端上都是可重复的,并且无论是部署到服务器还是从 localhost 都会显示出来。
我无法摆脱使用 'cc_load_policy': 0 的字幕,
在 YouTube.com 上观看视频时不显示字幕
当我使用 iframe 嵌入代码而不是完整的 API 时,我没有得到字幕:
同样,我有其他视频共享相同的 API 代码,没有字幕错误。
* 更新 *
好的,现在我在其他视频中看到了同样的行为。这过去没有发生过,所以我认为这是 YouTube 方面的事情。
...尽管如此,我仍然希望得到一些帮助。这是一个jsfiddle: