埋め込まれたプレーヤーで YouTube のキャプションがオンかオフかを検出することは可能ですか?
ユーザーがキャプションを表示することを選択した場合、キャプションを非表示にする方法は現在ありません。キャプションがオンの場合、カスタマイズされたメッセージを表示したいと思います。
ドキュメントには、私が言える限り、これについての言及はありません。
埋め込まれたプレーヤーで YouTube のキャプションがオンかオフかを検出することは可能ですか?
ユーザーがキャプションを表示することを選択した場合、キャプションを非表示にする方法は現在ありません。キャプションがオンの場合、カスタマイズされたメッセージを表示したいと思います。
ドキュメントには、私が言える限り、これについての言及はありません。
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
パイのように簡単にできます ;)
<!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 はすばらしい ;)
これでうまくいくはずです - 本番モードでは使用しないでください - 簡単にまとめただけです。必要な状態をリッスンする必要があります。私はあらゆるイベントでアラートを出しています ;)