Skip to content

Instantly share code, notes, and snippets.

@33sticks
Created October 28, 2016 18:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 33sticks/cc8411e0153eef10cc50b3acc749657f to your computer and use it in GitHub Desktop.
Save 33sticks/cc8411e0153eef10cc50b3acc749657f to your computer and use it in GitHub Desktop.
/* YouTube Player Mapping (https://developers.google.com/youtube/iframe_api_reference) */
var playerInfoList=new Array();
$("[id^='player']").each(function(){
var player=$(this).attr('id');
playerInfoList.push(player);
});
var players=new Array();
window.onYouTubeIframeAPIReady = function() {
for(x=0;x<playerInfoList.length;x++){
players[x] = new YT.Player(playerInfoList[x], {
events: {
'onStateChange': onPlayerStateChange
}
});
}
}
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING) {
var videoPlayer = "YouTube";
var videoTitle = event.target.getVideoData().title;
var videoId = event.target.getVideoData().video_id;
var mediaName = videoPlayer+'|'+videoId+'|'+videoTitle;
var mediaLength = Math.floor(event.target.getDuration());
var mediaOffset = Math.floor(event.target.getCurrentTime());
if (mediaOffset == 0) {
//console.log('mediaName on Start: ' + mediaName);
//console.log('mediaLength on Start: ' + Math.floor(event.target.getDuration()));
//console.log('mediaOffset on Start: ' +
Math.floor(event.target.getCurrentTime()));
mediaOffset = Math.floor(event.target.getCurrentTime());
s.Media.open(mediaName,mediaLength,videoPlayer);
s.Media.play(mediaName,mediaOffset);
} else {
//console.log('mediaName on Play: ' + mediaName);
//console.log('mediaOffset on Play: ' + Math.floor(event.target.getCurrentTime()));
mediaOffset = Math.floor(event.target.getCurrentTime());
s.Media.play(mediaName,mediaOffset);
};
}
if (event.data == YT.PlayerState.PAUSED) {
var videoPlayer = "YouTube";
var videoTitle = event.target.getVideoData().title;
var videoId = event.target.getVideoData().video_id;
var mediaName = videoPlayer+'|'+videoId+'|'+videoTitle;
//console.log('mediaName on Pause: ' + mediaName);
//console.log('mediaOffset on Pause: ' + Math.floor(event.target.getCurrentTime()));
mediaOffset = Math.floor(event.target.getCurrentTime());
s.Media.stop(mediaName,mediaOffset);
}
if (event.data == YT.PlayerState.BUFFERING) {
var videoPlayer = "YouTube";
var videoTitle = event.target.getVideoData().title;
var videoId = event.target.getVideoData().video_id;
var mediaName = videoPlayer+'|'+videoId+'|'+videoTitle;
//console.log('mediaName on Buffering: ' + mediaName);
//console.log('mediaOffset on Buffering: ' +
Math.floor(event.target.getCurrentTime()));
mediaOffset = Math.floor(event.target.getCurrentTime());
s.Media.stop(mediaName,mediaOffset);
}
if (event.data == YT.PlayerState.ENDED) {
var videoPlayer = "YouTube";
var videoTitle = event.target.getVideoData().title;
var videoId = event.target.getVideoData().video_id;
var mediaName = videoPlayer+'|'+videoId+'|'+videoTitle;
//console.log('mediaName on Ended: ' + mediaName);
//console.log('mediaOffset on Ended: ' + 0);
mediaOffset = 0;
s.Media.stop(mediaName,mediaOffset);
s.Media.close(mediaName);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment