Adds full support for YouTube playback.
While a few optimizations could be made, YouTube playback is almost as seamless as local playback.
This commit is contained in:
@@ -3,26 +3,51 @@ var video;
|
||||
|
||||
function onload()
|
||||
{
|
||||
video = document.getElementsByClassName('video-stream html5-main-video')[0]
|
||||
video = document.getElementsByClassName('video-stream html5-main-video')[0];
|
||||
statusUpdate = e => {
|
||||
return onStatusUpdate(getState(), e.srcElement.currentTime, getSongData());
|
||||
};
|
||||
// video.addListener("timeupdate", statusUpdate);
|
||||
// video.addListener("play", statusUpdate);
|
||||
// video.addListener("pause", statusUpdate);
|
||||
// video.addListener("ended", statusUpdate);
|
||||
video.ontimeupdate = statusUpdate;
|
||||
video.onplay = statusUpdate;
|
||||
video.onpause = statusUpdate;
|
||||
video.onended = statusUpdate;
|
||||
}
|
||||
|
||||
function getSongData()
|
||||
{
|
||||
return {
|
||||
type: "edu.regis.universeplayer.browser.InternetSong",
|
||||
location: "window.location.href",
|
||||
title: getTitle(),
|
||||
artists: getArtists(),
|
||||
trackNum: 0,
|
||||
discNum: 0,
|
||||
duration: parseInt(getLength() * 1000),
|
||||
album: null
|
||||
}
|
||||
}
|
||||
|
||||
function getState()
|
||||
{
|
||||
if (!video)
|
||||
{
|
||||
return 4;
|
||||
return "EMPTY";
|
||||
}
|
||||
else if (video.ended)
|
||||
{
|
||||
return 3;
|
||||
return "FINISHED";
|
||||
}
|
||||
else if (video.paused)
|
||||
{
|
||||
return 1;
|
||||
return "PAUSED";
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
return "PLAYING";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,6 +61,16 @@ function getLength()
|
||||
return video.duration;
|
||||
}
|
||||
|
||||
function getTitle()
|
||||
{
|
||||
return document.getElementsByTagName("meta").title.content;
|
||||
}
|
||||
|
||||
function getArtists()
|
||||
{
|
||||
return [document.getElementById("channel-name").getElementsByTagName("a")[0].text];
|
||||
}
|
||||
|
||||
function play()
|
||||
{
|
||||
if (video != null)
|
||||
|
||||
Reference in New Issue
Block a user