1

埋め込まれたプレーヤーで YouTube のキャプションがオンかオフかを検出することは可能ですか?

ユーザーがキャプションを表示することを選択した場合、キャプションを非表示にする方法は現在ありません。キャプションがオンの場合、カスタマイズされたメッセージを表示したいと思います。

ドキュメントには、私が言える限り、これについての言及はありません。

4

2 に答える 2

6

APIドキュメントのどこにもこれは見つかりませんでしたが、YouTubeプレーヤーオブジェクトを使用すると、次のことができるはずです:

player.getOptions("captions") || player.getOptions("cc")  //detects if captions were ever loaded at one point.

次の方法で js を介して有効にすることもできます。

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:24:06.407 に答える
5

パイのように簡単にできます ;)

<!DOCTYPE html>
<html>
<head>
<title>test</title>
</head>
<body>
<script src="//ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
  <div id="ytapiplayer">
    You need Flash player 8+ and JavaScript enabled to view this video.
  </div>

  <script type="text/javascript">

    var params = { allowScriptAccess: "always" };
    var atts = { id: "myytplayer" };
    swfobject.embedSWF("http://www.youtube.com/v/QRS8MkLhQmM?enablejsapi=1&playerapiid=ytplayer&version=3",
                       "ytapiplayer", "640", "480", "8", null, null, params, atts);

    var stateChange = function(a) {
            if (ytplayer.getOptions().indexOf("cc") !== -1) {
        alert("closed captions are on");
      } else {
        alert("closed captions are off");
      }
    }
   function onYouTubePlayerReady(playerId) {
      ytplayer = document.getElementById("myytplayer");
      ytplayer.addEventListener("onStateChange","stateChange");
    }
  </script></body>
</html>

ところで: Google はすばらしい ;)

これでうまくいくはずです - 本番モードでは使用しないでください - 簡単にまとめただけです。必要な状態をリッスンする必要があります。私はあらゆるイベントでアラートを出しています ;)

于 2012-08-28T16:10:56.993 に答える