// 2016/04/09 9:44:13
function help(){
//
//
//
//
//
// vol_mute
// volPlus
// volMinus
// seekTo30
//
//
//
//
//
//
// https://developers.google.com/youtube/js_api_reference#Playback_status
}
var debug = false;
var tag = document.createElement("script");
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName("script")[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
var playlist = document.getElementById("player2").getAttribute("playlistid");
var videoid = "h81DOCCivtA";
// var array_list = ["koNJ1W7gP78","uo35R9zQsAI"];
var div_area = "player2";
var h = "135";
var w = "200";
function onYouTubeIframeAPIReady() {
player = new YT.Player(div_area, {
height: h,
width: w,
videoId: videoid,
playerVars:{
"controls":"1",
"disablekb":"0",
"iv_load_policy":"3",
"modestbranding":"0",
"showinfo":"0",
"playsinline":"0"
},
events: {
"onReady" : onPlayerReady,
"onStateChange" : onPlayerStateChange,
"onError" : onPlayerError,
"onPlaybackRateChange" : onPlayerPlaybackRateChange
}
});
}
function onPlayerReady(event) {
var vol = document.getElementById("player2").getAttribute("defaultVol");
if(vol){
event.target.setVolume(vol);
}else{
event.target.setVolume("8");
}
event.target.cuePlaylist({list:playlist});
}
function onPlayerPlaybackRateChange(event){
if(debug){console.info('onPlayerPlaybackRateChange to >', event.target.getPlaybackRate());}
}
function onPlayerStateChange(event) {
if(debug){console.info("#061 onPlayerStateChange");}
if(debug){console.info("#062 player.getPlayerState()",event.target.getPlayerState());}
event.target.setPlaybackQuality("tiny");
// -1(未開始)
// 0(終了)
// 1(再生中)
// 2(停止)
// 3(バッファリング中)
// 5(頭出し済み)
// -1 – 未开始
// 0 – 已结束
// 1 – 正在播放
// 2 – 已暂停
// 3 – 正在缓冲
// 5 – 已插入视频
if(event.target.getPlayerState()== -0){
}
if(event.target.getPlayerState()== 0){
if(debug){console.info("#078",event.target.getPlayerState());}
// 再生モードの切り替え
if(document.getElementById("player2").getAttribute("mode") == "shuffle"){
event.target.playVideoAt(rand_play_index());
}else{
// 自動的に次の動画を再生されます、下のコマンドを追加すると次の次のなります。
// event.target.nextVideo();
}
}
if(event.target.getPlayerState()== 1){
if(debug){console.info("#079 State:",event.target.getPlayerState());}
if(debug){console.info("#080 VideoInfo",player.getVideoData());}
document.title = event.target.getVideoData()['title'];
}
if(event.target.getPlayerState()== 2){
}
if(event.target.getPlayerState()== 3){
}
if(event.target.getPlayerState()== 4){
}
if(event.target.getPlayerState() == 5 ){
// 再生モードの切り替え
if(document.getElementById("player2").getAttribute("mode") == "shuffle"){
event.target.playVideoAt(rand_play_index());
}else{
event.target.playVideo();
}
}
}
function rand_play_index (){
// shuffle再生するための再生IDをランダムに
var index = Math.floor(Math.random() * player.getPlaylist().length);
return index;
}
function one_list_play(event){
}
function onPlayerError(event){
event.target.nextVideo();
}
function f_nextVideo(){
if(document.getElementById("nextVideo")){
var tag = document.getElementById("nextVideo")
tag.addEventListener("click",function(){player.nextVideo();},false);
}
}
function f_previousVideo(){
if(document.getElementById("previousVideo")){
var tag = document.getElementById("previousVideo")
tag.addEventListener("click",function(){player.previousVideo();},false);
}
}
function f_playVideo(){
if(document.getElementById("playVideo")){
var tag = document.getElementById("playVideo");
tag.addEventListener("click",function(){player.playVideo();},false);
}
}
function f_stopVideo(){
if(document.getElementById("stopVideo")){
var tag = document.getElementById("stopVideo");
tag.addEventListener("click",function(){player.stopVideo();},false);
}
}
function f_pauseVideo(){
if(document.getElementById("pauseVideo")){
var tag = document.getElementById("pauseVideo");
tag.addEventListener("click",function(){player.pauseVideo();},false);
}
}
function f_seekTo30(){
if(document.getElementById("seekTo30")){
var tag = document.getElementById("seekTo30");
tag.addEventListener("click",function(){
player.seekTo(player.getCurrentTime()+30);},false);
}
}
function f_mute(){
if(document.getElementById("mute")){
var tag = document.getElementById("mute");
tag.addEventListener("click",function(){
if(player.isMuted()){
if(debug){console.info("#140 getVolume",player.getVolume());}
player.unMute();
}else{
if(debug){console.info("#143 getVolume",player.getVolume());}
player.mute();
}},false);
}
}
function f_volPlus(){
if(document.getElementById("volPlus")){
var tag = document.getElementById("volPlus");
tag.addEventListener("click",function(){
player.setVolume(player.getVolume()+6);},true);
}
}
function f_volMinus(){
if(document.getElementById("volMinus")){
var tag = document.getElementById("volMinus");
tag.addEventListener("click",function(){
player.setVolume(player.getVolume()-6);},true);
}
}
function f_PlaybackRate(){
if(document.getElementById("PlaybackRate")){
var x =["0.25","0.5","1","1.25","1.5","2"];
var tag = document.getElementById("PlaybackRate");
tag.addEventListener("click",function(){
var i = x.indexOf(player.getPlaybackRate().toString());
if( i == x.length-1){
player.setPlaybackRate(x[0]);
tag.innerText= "PlaybackRate "+ x[0];
}else{
player.setPlaybackRate(x[i+1]);
tag.innerText= "PlaybackRate "+ x[i+1];
}
},true);
}
}
function debug_info(line_num){
console.info("#" + line_num);
console.info(player.getVolume());
console.info(player.getVideoData());
console.info(player.getCurrentTime());
console.info(player.getDebugText());
console.info(player.getVideoUrl());
console.info(player.getPlaylistId());
}
onload = function(){
f_nextVideo();
f_previousVideo();
f_playVideo();
f_stopVideo();
f_pauseVideo();
f_seekTo30();
f_mute();
f_volPlus();
f_volMinus();
f_PlaybackRate();
page_play();
url_play();
}
function url_play(){
if($_GET(location.href,"list")){
player.loadPlaylist({list:$_GET(location.href,"list")});
}
}
function page_play(){
// http://musicinjp.hateblo.jp/ ページ用
var d = document.getElementById("player2");
d.setAttribute("mode","shuffle");
d.setAttribute("defaultVol","8");
var j = document.getElementsByClassName("artist");
for (var i = 0 ; i < j.length; i++){
j[i].setAttribute("listid",j[i].href);
j[i].removeAttribute("href");
j[i].addEventListener("click", function(){
var listid = $_GET(this.getAttribute("listid"),"list");
player.loadPlaylist({list:listid});
},false);
}
}
// mousemove
// click
// contextmenu
// dblclick
function $_GET(url,q){
if(debug){console.log(url);}
if(url.split("?").length > 1){
var temp = {};
var search = url.split('?')[1].split('&');
for(var i = 0; i < search.length; i++){
var para = search[i].split('=');
temp[para[0]]=para[1];
}
if(temp[q]){
if(debug){console.log(temp[q]);}
return temp[q];
}else{
if(debug){console.log(temp);}
return temp;
}
}
}