×
Create a new article
Write your page title here:
We currently have 302 articles on Knights of the Olde Speech. Type your article name above or click on one of the titles below and start writing!



Knights of the Olde Speech

MediaWiki:MusicPlayer.js: Difference between revisions

No edit summary
No edit summary
Line 62: Line 62:
}
}


async function fadein(vol) {
/*async function fadein(vol) {
     var i = 0;
     var i = 0;
     while (i < vol) {
     while (i < vol) {
Line 69: Line 69:
         await sleep(20);
         await sleep(20);
     }
     }
}
}*/
/*
/*
var vol = player.getVolume();
var vol = player.getVolume();
Line 77: Line 77:
*/
*/


async function fadeout() {
/*async function fadeout() {
     var vol = player.getVolume();
     var vol = player.getVolume();
     var i = vol;
     var i = vol;
Line 86: Line 86:
     }
     }
     return vol;
     return vol;
}
}*/


/*
/*
Line 105: Line 105:
       if (elementInView($(this))) {
       if (elementInView($(this))) {
           iframe.style.display = 'block';
           iframe.style.display = 'block';
           var vol = player.getVolume();
           //var vol = player.getVolume();
           player.setVolume(0);
           //player.setVolume(0);
           player.videoId = $(this).data-url;
           player.videoId = $(this).data-url;
           if (playerReady && isAllowed) player.playVideo();
           if (playerReady && isAllowed) player.playVideo();
           fadein(vol);
           //fadein(vol);
           return false;
           return false;
       }
       }
Line 115: Line 115:
   ends.each(function() {
   ends.each(function() {
       if (elementInView($(this))) {
       if (elementInView($(this))) {
         var vol = fadeout();
         //var vol = fadeout();
         player.stopVideo();
         player.stopVideo();
         player.setVolume(vol);
         //player.setVolume(vol);
         iframe.style.display = 'none';
         iframe.style.display = 'none';
         return false;
         return false;

Revision as of 14:07, 10 June 2020

//Emulator iframe with one of my videos as the default src
//Meant to be used with [Template:MusicPlayer] for stories
document.getElementsByTagName('body')[0].onload = function() {
    if (document.getElementById('musicPlayerAllow') !== null) {
        var rail = document.getElementById('WikiaRail');
        var node = document.createElement("div");
        var textnode = document.createTextNode("Loading iframe...");
        node.appendChild(textnode);
        node.id = "EmulatorFrame";
        node.classList.add("EmulatorFrame");
        node.classList.add("rail-module");
        rail.insertBefore(node, document.getElementById('WikiaAdInContentPlaceHolder'));
        
        
        // 2. This code loads the IFrame Player API code asynchronously.
      var tag = document.createElement('script');

      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    }
};

      // 3. This function creates an <iframe> (and YouTube player)
      //    after the API code downloads.
      var player;
      var playerReady = false;
      var isAllowed = false;
      var iframe;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('EmulatorFrame', {
          height: '120',
          width: '160',
          videoId: 'BHfqz68xEY8',
          events: {
            'onReady': onPlayerReady
          }
        });
        iframe = document.getElementById('EmulatorFrame');
        iframe.style.display = "none";
      }
      

function onPlayerReady(event) {
        playerReady = true;
      }
      




function allowMusic() {
    isAllowed = !isAllowed;
    //if (playerReady) player.playVideo();
}

var mpa = document.getElementById('musicPlayerAllow');
mpa.setAttribute('onclick', 'allowMusic()');

function sleep(ms) {
  return new Promise(function (resolve) { setTimeout(resolve, ms)});
}

/*async function fadein(vol) {
    var i = 0;
    while (i < vol) {
        ++i;
        player.setVolume(i);
        await sleep(20);
    }
}*/
/*
var vol = player.getVolume();
player.setVolume(0);
player.playVideo();
fadein(vol);
*/

/*async function fadeout() {
    var vol = player.getVolume();
    var i = vol;
    while (i > 0) {
        --i;
        player.setVolume(i);
        await sleep(20);
    }
    return vol;
}*/

/*
var vol = fadeout();
player.stopVideo();
player.setVolume(vol);
*/

function elementInView(elem){
  return $(window).scrollTop() < $(elem).offset().top + $(elem).height() ;
}

begins = document.find('musicPlayerBegin');
ends = document.find('musicPlayerEnd');

$(window).scroll(function(){
  begins.each(function() {
      if (elementInView($(this))) {
          iframe.style.display = 'block';
          //var vol = player.getVolume();
          //player.setVolume(0);
          player.videoId = $(this).data-url;
          if (playerReady && isAllowed) player.playVideo();
          //fadein(vol);
          return false;
      }
  });
  ends.each(function() {
      if (elementInView($(this))) {
         //var vol = fadeout();
         player.stopVideo();
         //player.setVolume(vol);
         iframe.style.display = 'none';
         return false;
      }
  });
});