4

我有一个带有自定义 HTML 控件的 youtube 播放器,并且想添加一个按钮来打开/关闭隐藏式字幕并切换语言。任何人都有使用 JS 或 iframe API 来执行此操作的经验?我知道将 cc_load_policy=1 附加到 url 将强制显示字幕,但我正在使用自定义控件并想添加一个切换按钮。我尝试使用 loadVideoByUrl 方法并附加 cc 参数,但这不起作用似乎不起作用。

我也只能使用 iframe 方法让播放器以用户的默认语言显示字幕,而不是 swf 对象方法。Swf 对象始终默认为英语。如果有人对此也有任何见解,请告诉我!

4

3 回答 3

19

我在他们的 api 文档中没有找到这个,但是使用你的 youtube 播放器对象你应该能够做到:

player.loadModule("captions");  //Works for html5 ignored by AS3
player.loadModule("cc");  //Works for AS3 ignored by html5

将其关闭:

player.unloadModule("captions");  //Works for html5 ignored by AS3
player.unloadModule("cc");  //Works for AS3 ignored by html5

如果加载了模块,则更改哪种语言:

player.setOption("captions", "track", {"languageCode": "es"});  //Works for html5 ignored by AS3
player.setOption("cc", "track", {"languageCode": "es"});  //Works for AS3 ignored by html5
于 2014-03-29T01:13:12.130 回答
1

function onPlayerStateChange(event) 
{	
  try
  {
    player.unloadModule("captions");  
    player.unloadModule("cc"); 
  }
  catch (exception)
  {
    LoggerUtil.logError("Error when trying to unloadModule youtube captions: " + exception);
  }
  // The rest of your function
}

感谢James Irwin在 android 4.4.2 和 android 6.0.1 上测试时这两行对我有用

player.unloadModule("captions");
player.unloadModule("cc");

您应该将这两行放在onPlayerStateChange函数中。

于 2016-07-13T08:54:50.600 回答
0

不幸的是,我们现在没有对字幕的完整 API 支持。您可以将自己添加到此外部功能请求中,以便在此更改时收到通知:https ://code.google.com/p/gdata-issues/issues/detail?id=444

(尽管该功能请求的年代久远,但仍有人积极寻求增加支持。)

于 2012-12-06T20:27:19.470 回答