I have a youtube player with custom HTML controls and would like to add a button to turn on/off closed caption and to toggle the language. Anyone have experience with using either the JS or iframe API to do this? I know that appending cc_load_policy=1 to the url will force the captions to display, but I am using custom controls and would like to add a toggle button. I tried using the loadVideoByUrl method and appending the cc parameter, but that doesn't work doesn't seem to work.
I was also only able to get the player to show captions in the user's default language with the iframe method, not the swf object method. Swf object always defaults to English. If anyone has any insights to this as well, please let me know!
I have a youtube player with custom HTML controls and would like to add a button to turn on/off closed caption and to toggle the language. Anyone have experience with using either the JS or iframe API to do this? I know that appending cc_load_policy=1 to the url will force the captions to display, but I am using custom controls and would like to add a toggle button. I tried using the loadVideoByUrl method and appending the cc parameter, but that doesn't work doesn't seem to work.
I was also only able to get the player to show captions in the user's default language with the iframe method, not the swf object method. Swf object always defaults to English. If anyone has any insights to this as well, please let me know!
Share Improve this question edited Dec 6, 2012 at 2:03 secretsuny asked Dec 6, 2012 at 1:58 secretsunysecretsuny 931 silver badge8 bronze badges3 Answers
Reset to default 21I have not found this anywhere in their api docs, but with your youtube player object you should be able to do:
player.loadModule("captions"); //Works for html5 ignored by AS3
player.loadModule("cc"); //Works for AS3 ignored by html5
to turn it off:
player.unloadModule("captions"); //Works for html5 ignored by AS3
player.unloadModule("cc"); //Works for AS3 ignored by html5
to change which language if the module is loaded:
player.setOption("captions", "track", {"languageCode": "es"}); //Works for html5 ignored by AS3
player.setOption("cc", "track", {"languageCode": "es"}); //Works for AS3 ignored by html5
Unfortunately, we don't have full API support over captions right now. You can add yourself to this external feature request to be notified when this changes: https://code.google.com/p/gdata-issues/issues/detail?id=444
(Despite the age of that feature request, there are people actively looking on adding support.)
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
}
Thanks James Irwin those two lines worked for me when testing on android 4.4.2 and android 6.0.1
player.unloadModule("captions");
player.unloadModule("cc");
You should put this two lines inside the onPlayerStateChange
function.