Skip to content

Instantly share code, notes, and snippets.

@satomacoto
Created May 25, 2012 12:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save satomacoto/2787710 to your computer and use it in GitHub Desktop.
Save satomacoto/2787710 to your computer and use it in GitHub Desktop.
A 連続再生 sample of YouTube Player API for <iframe> Embeds
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>A sample of YouTube Player API for <iframe> Embeds</title>
</head>
<body>
<!-- <iframe>(とプレイヤ)に置き換わる<div>タグ -->
<div id="player"></div>
<script>
// https://developers.google.com/youtube/iframe_api_reference
// プレイリスト
var playlist = ["d2ymeJ-CWVg", "HIXMtQTe3Pg", "BqHq5g9FJeI", "8dELD-3blj8", "j4OrOdgt7nc"];
// 次を再生
function playNext() {
// プレイリストにビデオが残ってたら先頭のビデオを再生
if (playlist.length > 0) {
player.loadVideoById(playlist.shift());
}
}
// IFrame Player APIを非同期にロード
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// APIをダウンロードしたら<iframe>とYouTubeプレイヤーを生成
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'qqXMM8v9vn0',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onError': onPlayerError // added
}
});
}
// プレイヤが準備できたら呼び出される
function onPlayerReady(event) {
event.target.playVideo();
}
// ステータスが変更されたら呼び出される
// ビデオが終わったら次を再生
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.ENDED) {
playNext();
}
}
// エラーが起きたら次を再生
function onPlayerError(event) {
playNext();
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment