昨天在2017年6月12日花了很大一部分时间,试图找出为什么当我使用YouTube iframe嵌入代码(从共享>嵌入按钮生成)时,我的字幕不起作用。
经过多次试验,我把问题缩小到了已经确定的范围内。关闭字幕无法工作,因为字幕是自动生成的。一旦我手动创建了封闭字幕,一切似乎都正常。我甚至不需要使用cc_load_policy=1参数。
但是..。在2017年6月13日的今天,我碰巧在处理相同的视频文件,突然之间我就有了不同的行为。当我从一个普通的YouTube页面播放视频时,我会看到字幕。当我播放的视频从iframe嵌入式播放器,我没有。在阅读的基础上尝试各种愚蠢的东西来工作。
字幕
注意:在这两种情况下,域都是:http://www.youtube.com i只能在post中包含2个链接。
/watch?v=EExO_6PVIXk
没有说明:
/embed/EExO_6PVIXk /embed/EExO_6PVIXk?cc_load_policy=1
我不知所措。任何方向都将不胜感激。
约翰
发布于 2017-06-15 17:46:37
从小道消息中听说,YouTube iFrame API昨天(6/14/17)发生了一些变化,CC开始工作了。
通过一些测试,我得到了好坏参半的结果(但我正在工作):
( 1)从现在(6/15/17)开始,嵌入视频链接显示CC按钮,如果以前启用了闭路字幕,则显示CC (在"yt-html5-player-modules::subtitlesModuleData::module-enabled".下的本地存储中保持跟踪)
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的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>发布于 2017-10-04 05:19:10
我认为这可能是一个重复的问题:
Embed Youtube with Captions on by default not working
...where添加cc_lang_pref=en选项(如果您想要英语的话)可以解决这个问题。
https://stackoverflow.com/questions/44528683
复制相似问题