在我昨天使用YouTube iframe嵌入代码(从Share> Embed按钮生成)时,花了很多时间来解决为什么我的字幕无法正常工作。
经过多次实验,我将问题缩小到已经确定的范围。隐藏式字幕无效,因为字幕自动生成。一旦我手动创建了隐藏式字幕,一切似乎都运行正常。我甚至不必使用cc_load_policy = 1参数。
但是......今天6/13/2017,我碰巧使用相同的视频文件,突然间我有不同的行为。当我从常规YouTube页面播放视频时,我会看到字幕。当我从iframe嵌入式播放器播放视频时,我没有。尝试各种愚蠢的事情,让事情在阅读的基础上发挥作用。
字幕
注意:在这两种情况下,域名都是:http://www.youtube.com我只能在帖子中包含2个链接。
/观看?V = EExO_6PVIXk
没有说明:
/嵌入/ EExO_6PVIXk /嵌入/ EExO_6PVIXk?cc_load_policy = 1
我不知所措。任何方向都会受到赞赏。
约翰
答案 0 :(得分:0)
昨天(17/9/17),在CC开始工作的情况下,通过YouTube iFrame API听到了一些变化。
通过一些测试,我得到了不同的结果(但我正在工作):
1)截至目前(17/15/17),嵌入视频链接现在显示CC按钮,如果您之前启用了隐藏式字幕,则会显示CC(在" yt-html5下的本地存储中保持跟踪单放机模块:: subtitlesModuleData ::启用模块-"
2)如果您提供了记录的" cc_load_policy = 1" URL(iFrame嵌入)的参数将显示隐藏式字幕,无论本地存储中的值如何。
3)我没有按照以下方式加载iframe:
<iframe
id="futusign_youtube"
style="visibility: hidden;"
frameborder="0"
src="https://www.youtube.com/embed/XIMLoLxmTDw?enablejsapi=1"
></iframe>
然后尝试在playerVars中设置CC策略:
var player = new window.YT.Player('futusign_youtube', {
playerVars: {
'controls': 0,
'enablejsapi': 1,
'showinfo': 0,
'rel': 0,
'cc_load_policy': 1,
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onError': onPlayerError,
}
});
4)解决方法是将src的URL上的cc_load_policy = 1设置为iFrame。
<iframe
id="futusign_youtube"
style="visibility: hidden;"
frameborder="0"
src="https://www.youtube.com/embed/XIMLoLxmTDw?enablejsapi=1&cc_load_policy=1"
></iframe>
答案 1 :(得分:0)
我认为这可能是这个问题的重复:
Embed Youtube with Captions on by default not working
...添加cc_lang_pref=en
选项(如果你想要英文)可以解决问题。