4

カスタムHTMLコントロールを備えたYouTubeプレーヤーがあり、クローズドキャプションをオン/オフにしたり、言語を切り替えたりするためのボタンを追加したいと思います。これを行うためにJSまたはiframeAPIのいずれかを使用した経験がある人はいますか?URLにcc_load_policy=1を追加すると、キャプションが強制的に表示されることはわかっていますが、カスタムコントロールを使用しており、トグルボタンを追加したいと思います。loadVideoByUrlメソッドを使用してccパラメーターを追加しようとしましたが、機能しないようです。

また、swfオブジェクトメソッドではなく、iframeメソッドを使用して、プレーヤーにユーザーのデフォルト言語でキャプションを表示させることしかできませんでした。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
}

ジェームズ・アーウィンに感謝

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

この 2 行を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 に答える