JavaScriptで、HTMLに貼り付けた(埋め込み)YouTube動画をコントロールする方法
(YouTube JavaScript Player API/SWFObject使用)
YouTube JavaScript Player API/SWFObjectは、2015.1.27 から非推奨(offically deprecated)となり、以降はiframe APIを使用することが推奨されました。
≫iframe 組み込みの YouTube Player API リファレンス
≫本サイトのiframe 組み込みの YouTube Player API リファレンスのデモ
JavaScript APIの関数を呼び出すことでさまざまな操作を実行できます。
function onYouTubePlayerReady(playerId) { ytplayer1 = document.getElementById("myytplayer1"); } function play() { if (ytplayer1) { ytplayer1.playVideo(); //再生開始(自動再生) ytplayer1.setVolume(20); } //音量を20に設定 } |
You need Flash player 8+ and JavaScript enabled to view this video.
※音声はこの動画から出ています。画面は480x274(16:9)です。 |
You need Flash player 8+ and JavaScript enabled to view this video.
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <title>YouTube動画をHTMLに貼り付ける|動画コントロール サンプル</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!--▼A Use the Google AJAX Libraries API: http://code.google.com/apis/ajaxlibs/ SWFObject:http://code.google.com/intl/ja/apis/ajaxlibs/documentation/index.html#swfobject --> <script src="http://www.google.com/jsapi"></script> <script> google.load("swfobject", "2.1"); </script> <!--▼B 動画コントロールJavascript--> <script type="text/javascript"> //動画特定プレーヤーの準備が整うとこの関数が実行される▼B-1 function onYouTubePlayerReady(playerId) { //alert(playerId); if(playerId == "ytplayer1"){ ytplayer1 = document.getElementById("myytplayer1"); //サンプル動画 } if(playerId == "ytplayer2"){ ytplayer2 = document.getElementById("myytplayer2"); //動画2 } } //動画コントロール▼B-2 function play1() { if (ytplayer1) { ytplayer1.playVideo(); ytplayer1.setVolume(20); } } </script> </head> <body onload="setTimeout('play1()',3000)"><!--▼E 動画の起動(コントロール)--> <!--▼C 動画埋め込み場所--> <div id="ytapiplayer1"> You need Flash player 8+ and JavaScript enabled to view this video. </div> <!--▼D 動画埋め込み SWFObject--> <script type="text/javascript"> var params = { allowScriptAccess: "always" }; var atts = { id: "myytplayer1" }; swfobject.embedSWF("http://www.youtube.com/v/Fb4jRjSGvw0&enablejsapi=1&playerapiid=ytplayer1&rel=0 &color2=0xcd311b", "ytapiplayer1", "480", "295", "8", null, null, params, atts); </script> </body> </html>(注)動画埋め込み場所ID:ytapiplayer1 埋め込みオブジェクトID:myytplayer1 プレーヤー特定ID:ytplayer1
<script src="http://www.google.com/jsapi"></script> <script> google.load("swfobject", "2.1"); </script>
<script type="text/javascript" src="swfobject.js"></script>
<object width="480" height="295"> <param name="movie" value="http://www.youtube.com/v/Fb4jRjSGvw0&hl=ja_JP&fs=1&color1=0x5d1719&color2=0xcd311b"></param> <param name="allowFullScreen" value="true"></param> <param name="allowscriptaccess" value="always"></param> <embed src="http://www.youtube.com/v/Fb4jRjSGvw0&hl=ja_JP&fs=1&color1=0x5d1719&color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="295"></embed></object> (これは、YouTube動画再生画面の「埋込み」タグ。埋め込みオブジェクトという。)
//動画特定プレーヤーの準備が整うとこの関数が実行される▼B-1(プレーヤー参照のため必須) function onYouTubePlayerReady(playerId) { if(playerId == "ytplayer1"){ ytplayer1 = document.getElementById("myytplayer1"); //動画1 } if(playerId == "ytplayer2"){ ytplayer2 = document.getElementById("myytplayer2"); //動画2 } }
<!--▼D 動画埋め込み SWFObject--> <script type="text/javascript"> var params = { allowScriptAccess: "always" }; var atts = { id: "myytplayer1" }; swfobject.embedSWF("http://www.youtube.com/v/Fb4jRjSGvw0&enablejsapi=1&playerapiid=ytplayer1&rel=0 &color2=0xcd311b", "ytapiplayer1", "480", "295", "8", null, null, params, atts); </script>
swfobject.embedSWF(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj)【説明】
swfUrlStr
: 埋め込み動画(SWF) の URL です。なお、JavaScript API コールを有効にするため、enablejsapi
および playerapiid
パラメータを追加してあります。replaceElemIdStr
: 埋め込み動画が置き換えられる場所。HTMLのDIV ID です。上の例では ytapiplayer1
です。widthStr
: プレーヤーの幅です。
heightStr
: プレーヤーの高さです。 swfVersionStr
: ユーザーがコンテンツを表示するために必要な最低限のバージョンです。xiSwfUrlStr
: (オプション) SWF を高速インストールするための URL を指定します。この例では使用されていません。
flashVarsObj
: (オプション) 使用している FlashVars を名前/値ペアで指定します。この例では使用されていません。
parObj
: (オプション) 埋め込みタグオブジェクト(<object>タグ内)のパラメータです。allowScriptAccess
を設定しています。 埋め込みタグは、YouTube動画再生画面の右にあります。AttObj
: (オプション) 埋め込みタグオブジェクトのID属性です。この例では、ID が myytplayer1
に設定しています。
<!--▼C 動画埋め込み場所--> <div id="ytapiplayer1"> You need Flash player 8+ and JavaScript enabled to view this video. </div>
<!--▼B 動画コントロールJavascript--> <script type="text/javascript"> //動画特定プレーヤーの準備が整うとこの関数が実行される▼B-1 function onYouTubePlayerReady(playerId) { if(playerId == "ytplayer1"){ ytplayer1 = document.getElementById("myytplayer1"); //サンプル動画 } if(playerId == "ytplayer2"){ ytplayer2 = document.getElementById("myytplayer2"); //動画2 } } //動画コントロール▼B-2 function play1() { if (ytplayer1) { ytplayer1.playVideo(); //動画の再生を開始する ytplayer1.setVolume(20); //音量を20に設定する } } </script> ・・・ <body onload="setTimeout('play1()',3000)"><!--▼E 動画の起動(コントロール)-->