youtube-iframe-api隐藏字幕问题

时间:2017-06-13 18:12:04

标签: youtube-iframe-api

在我昨天使用YouTube iframe嵌入代码(从Share> Embed按钮生成)时,花了很多时间来解决为什么我的字幕无法正常工作。

经过多次实验,我将问题缩小到已经确定的范围。隐藏式字幕无效,因为字幕自动生成。一旦我手动创建了隐藏式字幕,一切似乎都运行正常。我甚至不必使用cc_load_policy = 1参数。

但是......今天6/13/2017,我碰巧使用相同的视频文件,突然间我有不同的行为。当我从常规YouTube页面播放视频时,我会看到字幕。当我从iframe嵌入式播放器播放视频时,我没有。尝试各种愚蠢的事情,让事情在阅读的基础上发挥作用。

  • 重新创建了英文隐藏字幕(在开始时手动创建了一个模糊)。
  • 设置cc_load_policy = 1参数
  • 设置yt:cc = on作为标签
  • 其他一些不值得一提的傻话。

字幕

注意:在这两种情况下,域名都是:http://www.youtube.com我只能在帖子中包含2个链接。

/观看?V = EExO_6PVIXk

没有说明:

/嵌入/ EExO_6PVIXk /嵌入/ EExO_6PVIXk?cc_load_policy = 1

我不知所措。任何方向都会受到赞赏。

约翰

2 个答案:

答案 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选项(如果你想要英文)可以解决问题。