Youtube API - 如何使用自定义控件打开/关闭字幕,更改语言?

时间:2012-12-06 01:58:05

标签: javascript youtube youtube-api swfobject

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

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

3 个答案:

答案 0 :(得分:15)

我没有在他们的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

答案 1 :(得分: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函数中。

答案 2 :(得分:0)

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

(尽管该功能请求已经过时,但仍有人积极寻求添加支持。)