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>