YouTube JavaScript APIでイベントを取得するサンプル。
/
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="ja" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="imagetoolbar" content="no" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/lib/global.css" /> <!-- JS --> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> <script type="text/javascript"> var flashvars = { }; var params = { allowScriptAccess:"always" }; var attributes = { id:"myytplayer" }; swfobject.embedSWF( "http://www.youtube.com/apiplayer?enablejsapi=1&version=3&playerapiid=ytplayer", "ytapiplayer", "560", "340", "8.0.0", /* Flash Player8 以降を指定 */ "/content/lib/swfobject/expressInstall.swf", flashvars, params, attributes ); $(function(){ /* 再生/一時停止 */ $("#btn_play").toggle(function(){ if(ytplayer) ytplayer.playVideo(); },function(){ if(ytplayer) ytplayer.pauseVideo(); }); /* 停止 */ $("#btn_stop").click(function(){ if(ytplayer) ytplayer.stopVideo(); }); /* シーク位置 */ $("#btn_seek").click(function(){ var num=($("#seek").val()) ? $("#seek").val() : 0; if(ytplayer){ ytplayer.seekTo(num,true); } }); /* 画質切り替え */ $("#available").change(function(){ var str=($("#available").val()) ? $("#available").val() : 0; if(ytplayer){ ytplayer.setPlaybackQuality(str); return false; } }); }); /* プレーヤーの準備ができると呼ばれる関数 */ function onYouTubePlayerReady(playerId) { ytplayer = document.getElementById("myytplayer"); ytplayer.cueVideoById("GILIk8W00s4"); timerID=setInterval("getQualitySet()",1); /* イベント登録 */ ytplayer.addEventListener("onStateChange", "onytplayerStateChange"); ytplayer.addEventListener("onPlaybackQualityChange", "onyPlaybackQualityChange"); ytplayer.addEventListener("onError", "onyError"); } /* プレーヤーの状態が変わった時 */ function onytplayerStateChange(newState){ if(newState==-1){ tmpstr="未開始"; }else if(newState==0){ tmpstr="終了"; }else if(newState==1){ tmpstr="再生中"; }else if(newState==2){ tmpstr="一時停止"; }else if(newState==3){ tmpstr="バッファリング中"; }else if(newState=-5){ tmpstr="頭出し済"; } $("#playerstatus").html("プレーヤーの状態:"+tmpstr); } /* プレーヤーの画質が変わった時 */ function onyPlaybackQualityChange(newQuality){ $("#qualitystatus").html("現在の画質:"+newQuality); } /* プレーヤーでエラーが発生した時 */ function onyError(error){ alert("プレーヤーでエラーが発生しました。"); } /* 有効な画質をセット */ function getQualitySet(){ if($("#available").html()==""){ var tmp=ytplayer.getAvailableQualityLevels(); $("#available").html(""); for(var i=0; i<tmp.length; i++){ if(tmp[i]!=""){ var opt=(tmp[i]==ytplayer.getPlaybackQuality()) ? " selected='selected'" : ""; $("#available").append("<option value='"+tmp[i]+"'"+opt+">"+tmp[i]+"</option>"); } } } } </script> <!-- CSS --> <style type="text/css"> img { vertical-align:middle; } </style> <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> <h1>設置サンプル</h1> <h2>FlashのWeb埋め込みライブラリ「SWFObject」を使用したYouTube動画プレーヤーの埋め込み(クロムレスプレーヤー)</h2> <p>YouTube JavaScript APIでイベントを取得するサンプル。</p> <!-- CODE --> <div id="ytapiplayer"> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p> </div> <p><span id="playerstatus"></span>/<span id="qualitystatus"></span></p> <p> <a href="#" id="btn_play"><img src="/content/img/strm/key_play_pause.png" alt="再生/一時停止" /></a> <a href="#" id="btn_stop"><img src="/content/img/strm/key_stop.png" alt="停止" /></a> 画質切り替え:<select id="available"></select> (再生後に生成) </p> <!-- / CODE --> </body> </html>