PHP & JavaScript Room :: 設置サンプル

実行結果

設置サンプル

FlashのWeb埋め込みライブラリ「SWFObject」を使用したYouTube動画プレーヤーの埋め込み(クロムレスプレーヤー)

YouTube JavaScript APIでイベントを取得するサンプル。

Get Adobe Flash player

再生/一時停止 停止 画質切り替え: (再生後に生成)

設置サンプルのソース

<!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 &amp; 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>