我有一个带有自定义HTML控件的youtube播放器,并且想要添加一个按钮来打开/关闭隐藏式字幕并切换语言。任何人都有使用JS或iframe API的经验吗?我知道将cc_load_policy = 1附加到网址会强制显示字幕,但我使用自定义控件并想添加切换按钮。我尝试使用loadVideoByUrl方法并附加cc参数,但这不起作用似乎不起作用。
我也只能让播放器用iframe方法显示用户默认语言的字幕,而不是swf对象方法。 Swf对象始终默认为英语。如果有人对此有任何见解,请告诉我!
答案 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
(尽管该功能请求已经过时,但仍有人积极寻求添加支持。)