最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Youtube API - how to use custom controls to turn captions onoff, change language? - Stack Overflow

programmeradmin4浏览0评论

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 badges
Add a comment  | 

3 Answers 3

Reset to default 21

I 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.

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论