字幕のフォントサイズ:
字幕が付いている動画(クッキング)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>YouTube IFrame API:動画プレーヤ―の基本的な埋め込み(jQuery使用)</title> <link rel="stylesheet" type="text/css" href="/content/lib/global.css" /> <style> #playerbox { width:640px; height:390px; margin-bottom:10px; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> $(function(){ var player; /* IFrame Player APIのコードをロード */ function fGetScript(){ $.ajax({ url:"http://www.youtube.com/player_api/", dataType:"script", success:function(data){ dbg("done"); /* プレーヤーの準備完了時 */ window.onYouTubeIframeAPIReady=function() { dbg("onYouTubeIframeAPIReady"); getPL(); } }, error:function(xhr, status, thrown) { dbg(xhr); fGetScript(); } }); } fGetScript(); function getPL(){ /* how to make cooking」が含まれている字幕付き動画を評価が高い順に取得 */ $.ajax({ "url":"http://gdata.youtube.com/feeds/api/videos", "data":{"q":"how+to+make+cooking","orderby":"rating","caption":true,"v":2,"alt":"json-in-script"}, "type":"get", "dataType":"jsonp" }) .success(function(xml){ dbg("success"); getList(xml); }) .error(function(xhr, status, thrown){ dbg("error:"+status+"/"+thrown); getPL(); }); } function getList(xml){ var feed=xml.feed; var s=""; $.each(feed.entry, function(i,item){ var tmp=item.link; $.each(tmp, function(j, lnk){ if(lnk.href.indexOf("watch?v=")!=-1){ var tmp2=lnk.href.split("watch?v="); tmp2=tmp2[1].split("&"); var vid=tmp2[0]; var title=(item.title)?item.title.$t:"no title"; if(vid){ $('<li><a href="#" rel="'+vid+'">'+title+'</a></li>').appendTo($("#videos")); } } }); }); loadPlayer($("#videos li:first a").attr("rel"),0); } $("#videos li a").live("click",function(event){ loadPlayer($(this).attr("rel"),$(this).parent().index()); }); /* プレーヤー生成 */ function loadPlayer(videoID,idx) { dbg("loadPlayer("+videoID+")"); $("#videos li").css("font-weight","normal"); $("#videos li").eq(idx).css("font-weight","bold"); if(!player){ player = new YT.Player( 'player',{ width: '640', /* 動画プレーヤーの幅 */ height: '390', /* 動画プレーヤーの高さ */ videoId: videoID, /* YouTube動画ID */ events: { /* イベント */ "onReady": onPlayerReady, /* プレーヤの準備完了時 */ "onApiChange": onPlayerApiChange }, playerVars: { "rel":0, // 関連動画の有無(default:1) "iv_load_policy":3, // アノテーション有無(default:1, 3で無効) "cc_load_policy":1, // 字幕有無(1:ON、defaultはユーザー設定) "controls":1 // コントロール有無(default:1) } } ); }else{ player.loadVideoById(videoID); } } function onPlayerReady(event){ event.target.playVideo(); /* 動画再生 */ } function onPlayerApiChange(event){ ccFontsizeChange(); } $("input:radio[name=r]").click(function(){ ccFontsizeChange(); }); function ccFontsizeChange(){ var size=$('input:radio[name=r]:checked').val(); dbg("size:"+size); player.setOption("cc","fontSize",size); } function dbg(str){ if(window.console && window.console.log){ console.log(str); } } }); </script> <link rel="stylesheet" type="text/css" href="/common/css/example.css"></head> <body id='example3' class='example'><div class="ads" style="margin:32px auto;text-align:center;"></div><h1 class='h'><a href='/'>PHP & JavaScript Room</a> :: 設置サンプル</h1> <h3 class='h'>実行結果</h3> <div id="wrap"> <h1>設置サンプル</h1> <h2>YouTube IFrame API:字幕付き動画一覧表示+字幕のフォントサイズ変更</h2> <p>字幕のフォントサイズ: <label id="r1"><input type="radio" id="r1" name="r" value="-1">-1</label> <label id="r2"><input type="radio" id="r2" name="r" value="0" checked>0(default)</label> <label id="r3"><input type="radio" id="r3" name="r" value="1">1</label> <label id="r4"><input type="radio" id="r4" name="r" value="2">2</label> <label id="r5"><input type="radio" id="r5" name="r" value="3">3</label> </p> <div id="playerbox"><div id='player'><!-- 動画プレーヤーの埋め込み --></div></div> <p>字幕が付いている動画(クッキング)</p> <ul id="videos"></ul> </div> </body> </html>