2つの動画を配置し、再生・一時停止の再生ステイタスを同期させる。どちらか一方のプレーヤを一時停止すると、もう一方のプレーヤーも一時停止します。動画が最後まで再生された時のステイタスは一時停止、リプレイした時のステイタスは再生となります。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>設置サンプル:YouTube IFrame API:プレーヤーの複数配置</title> <link rel="canonical" href="https://phpjavascriptroom.com/example3.php?f=module/include/strm/youtubeiframeplayerapi/multiple.inc&ttl=%E8%A8%AD%E7%BD%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB" /> <link rel="stylesheet" type="text/css" href="/content/lib/global.css" /> <style> #playerbox { width:700px; margin-bottom:10px; clear:both; float:none; overflow:hidden; } #playerbox iframe { float:left; margin:0 10px 0 0; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> $(function(){ var players=[]; /* IFrame Player APIのコードをロード */ function fGetScript(){ $.ajax({ url:"http://www.youtube.com/player_api/", dataType:"script", success:function(data){ dbg("done"); }, error:function(xhr, status, thrown) { dbg(xhr); fGetScript(); } }); } fGetScript(); /* プレーヤーの準備完了時 */ window.onYouTubeIframeAPIReady=function() { dbg("onYouTubeIframeAPIReady"); loadPlayer("9YEEl52u8XE,XfkXW49bXfo"); } /* プレーヤー生成 */ function loadPlayer(videoIDs) { var tmp=videoIDs.split(","); for(var i in tmp){ var videoID=tmp[i]; var playerID="player_"+videoID; playerID=new YT.Player( playerID,{ width: '320', height: '195', videoId: videoID, events: { /* イベント */ "onReady": onPlayerReady, /* プレーヤの準備完了時 */ "onStateChange": onPlayerStateChange /* 動画プレーヤーのステータス変更 */ }, playerVars: { "rel":1, // 関連動画の有無(default:1) "showinfo":0, // 動画情報表示(default:1) "controls":1 // コントロール有無(default:1) } } ); players.push(playerID); dbg(playerID.getIframe()); } } function onPlayerReady(event){ /* プレーヤの準備完了時 */ dbg("onPlayerReady"); } function onPlayerStateChange(event){ /* プレーヤの準備完了時 */ dbg("PlayerState:"+event.data); var playerID=event.target.a.id; if(event.data==YT.PlayerState.PAUSED){ for(var i in players){ players[i].pauseVideo(); } }else if(event.data==YT.PlayerState.PLAYING){ for(var i in players){ players[i].playVideo(); } } } function dbg(str){ $("#debuglog").val(str+"\n"+$("#debuglog").val()); 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>2つの動画を配置し、再生・一時停止の再生ステイタスを同期させる。どちらか一方のプレーヤを一時停止すると、もう一方のプレーヤーも一時停止します。動画が最後まで再生された時のステイタスは一時停止、リプレイした時のステイタスは再生となります。</p> <div id="playerbox"> <div id='player_9YEEl52u8XE'><!-- 動画プレーヤーの埋め込み --></div> <div id='player_XfkXW49bXfo'><!-- 動画プレーヤーの埋め込み --></div> </div> <textarea id="debuglog" style="width:640px;height:300px;"></textarea> </div> </body> </html>