mirror of
https://github.com/KevinMidboe/zoff.git
synced 2025-10-29 09:50:24 +00:00
522 lines
17 KiB
JavaScript
Executable File
522 lines
17 KiB
JavaScript
Executable File
var Playercontrols = {
|
|
stopInterval: false,
|
|
|
|
initYoutubeControls: function() {
|
|
Playercontrols.initControls();
|
|
},
|
|
|
|
initControls: function() {
|
|
document
|
|
.getElementById("volume-button")
|
|
.addEventListener("click", Playercontrols.mute_video);
|
|
document
|
|
.getElementById("playpause")
|
|
.addEventListener("click", Playercontrols.play_pause);
|
|
document
|
|
.getElementById("volume-button-overlay")
|
|
.addEventListener("click", Playercontrols.mute_video);
|
|
document
|
|
.getElementById("playpause-overlay")
|
|
.addEventListener("click", Playercontrols.play_pause);
|
|
document
|
|
.getElementById("fullscreen")
|
|
.addEventListener("click", Playercontrols.fullscreen);
|
|
},
|
|
|
|
initSlider: function() {
|
|
try {
|
|
vol = Crypt.get_volume();
|
|
} catch (e) {
|
|
vol = 100;
|
|
}
|
|
try {
|
|
if (document.getElementsByClassName("volume-slid")) {
|
|
document.getElementById("volume").innerHTML = "";
|
|
}
|
|
} catch (e) {}
|
|
if ((Helper.mobilecheck() || slider_type == "vertical") && !embed) {
|
|
//slider_values.orientation = "vertical";
|
|
if (
|
|
!document.querySelector(".volume-container").classList.contains("hide")
|
|
) {
|
|
Helper.toggleClass(".volume-container", "hide");
|
|
}
|
|
}
|
|
document
|
|
.getElementById("volume")
|
|
.insertAdjacentHTML(
|
|
"beforeend",
|
|
"<div class='volume-slid " + slider_type + "'></div>"
|
|
);
|
|
document
|
|
.getElementById("volume")
|
|
.insertAdjacentHTML(
|
|
"beforeend",
|
|
"<div class='volume-handle " + slider_type + "'></div>"
|
|
);
|
|
if (slider_type != "vertical") {
|
|
Helper.removeClass("#volume", "vertical");
|
|
Helper.css(".volume-slid", "width", vol + "%");
|
|
Helper.css(".volume-handle", "left", "calc(" + vol + "% - 1px)");
|
|
} else {
|
|
Helper.addClass("#volume", "vertical");
|
|
Helper.css(".volume-slid", "height", vol + "%");
|
|
Helper.css(".volume-handle", "bottom", "calc(" + vol + "% - 1px)");
|
|
}
|
|
Playercontrols.choose_button(vol, false);
|
|
//document.getElementsByClassName("volume-handle")[0].onmousedown = Playercontrols.dragMouseDown;
|
|
//Playercontrols.visualVolume(slider_values);
|
|
//document.getElementsByClassName("volume-slid")[0].onmousedown = Playercontrols.dragMouseDown;
|
|
document.getElementById("volume").onmousedown = function(e) {
|
|
Playercontrols.dragMouseDown(e, "player");
|
|
};
|
|
if (!Helper.mobilecheck()) {
|
|
document.getElementById("volume").onclick = function(e) {
|
|
Playercontrols.elementDrag(e, "player");
|
|
Playercontrols.closeDragElement("player");
|
|
};
|
|
}
|
|
document.getElementById("volume").addEventListener(
|
|
"touchstart",
|
|
function(e) {
|
|
e.preventDefault();
|
|
Playercontrols.dragMouseDown(e, "player");
|
|
},
|
|
false
|
|
);
|
|
},
|
|
|
|
dragMouseDown: function(e, element) {
|
|
e = e || window.event;
|
|
// get the mouse cursor position at startup:
|
|
document.onmouseup = function() {
|
|
Playercontrols.closeDragElement(element);
|
|
};
|
|
document.getElementById("volume").addEventListener(
|
|
"touchend",
|
|
function() {
|
|
Playercontrols.closeDragElement(element);
|
|
},
|
|
false
|
|
);
|
|
// call a function whenever the cursor moves:
|
|
document.onmousemove = function(e) {
|
|
Playercontrols.elementDrag(e, element);
|
|
};
|
|
document.getElementById("volume").addEventListener(
|
|
"touchmove",
|
|
function(e) {
|
|
e.preventDefault();
|
|
Playercontrols.elementDrag(e, element);
|
|
},
|
|
false
|
|
);
|
|
},
|
|
|
|
elementDrag: function(e, element) {
|
|
var elmnt;
|
|
var cmp_elmnt;
|
|
var slid_elmnt;
|
|
if (element == "player") {
|
|
elmnt = document.getElementsByClassName("volume-handle")[0];
|
|
cmp_elmnt = document.getElementById("volume");
|
|
slid_elmnt = document.getElementsByClassName("volume-slid")[0];
|
|
} else {
|
|
elmnt = document.getElementsByClassName("volume-handle-remote")[0];
|
|
cmp_elmnt = document.getElementById("volume-control-remote");
|
|
slid_elmnt = document.getElementsByClassName("volume-slid-remote")[0];
|
|
}
|
|
e = e || window.event;
|
|
|
|
var pos3 = e.clientX;
|
|
var pos4 = e.clientY;
|
|
if (pos3 == undefined) {
|
|
pos3 = e.touches[0].clientX;
|
|
}
|
|
if (pos4 == undefined) {
|
|
pos4 = e.touches[0].clientY;
|
|
}
|
|
var volume = 0;
|
|
if (slider_type != "vertical" || element != "player") {
|
|
if (elmnt.className.indexOf("ui-state-active") == -1) {
|
|
elmnt.className += " ui-state-active";
|
|
}
|
|
var pos = pos3 - cmp_elmnt.offsetLeft;
|
|
if (pos > -1 && pos < cmp_elmnt.offsetWidth + 1) {
|
|
elmnt.style.left = pos + "px";
|
|
volume = pos / cmp_elmnt.offsetWidth;
|
|
} else if (pos < 1) {
|
|
elmnt.style.left = 0 + "px";
|
|
volume = 0;
|
|
} else {
|
|
elmnt.style.left = cmp_elmnt.offsetWidth + "px";
|
|
volume = 1;
|
|
}
|
|
slid_elmnt.style.width = volume * 100 + "%";
|
|
if (element == "player") Playercontrols.setVolume(volume * 100);
|
|
else
|
|
socket.emit("id", {
|
|
id: Mobile_remote.id,
|
|
type: "volume",
|
|
value: volume * 100
|
|
});
|
|
} else {
|
|
var pos = pos4 - cmp_elmnt.offsetTop;
|
|
var pos0 = window.innerHeight - pos - 14;
|
|
|
|
if (pos0 > 64 && pos0 < 164) {
|
|
volume = (pos0 - 64) / 100;
|
|
} else if (pos0 < 65) {
|
|
volume = 0;
|
|
} else {
|
|
volume = 1;
|
|
}
|
|
slid_elmnt.style.height = volume * 100 + "%";
|
|
Playercontrols.setVolume(volume * 100);
|
|
}
|
|
try {
|
|
Crypt.set_volume(volume * 100);
|
|
} catch (e) {}
|
|
},
|
|
|
|
closeDragElement: function(element) {
|
|
/* stop moving when mouse button is released:*/
|
|
var elmnt;
|
|
if (element == "player") {
|
|
elmnt = document.getElementsByClassName("volume-handle")[0];
|
|
} else {
|
|
elmnt = document.getElementsByClassName("volume-handle-remote")[0];
|
|
}
|
|
if (elmnt.className.indexOf("ui-state-active") > -1) {
|
|
setTimeout(function() {
|
|
elmnt.classList.remove("ui-state-active");
|
|
}, 1);
|
|
}
|
|
document.onmouseup = null;
|
|
document.onmousemove = null;
|
|
if (element == "player") {
|
|
document.getElementById("volume").removeEventListener(
|
|
"touchmove",
|
|
function(e) {
|
|
e.preventDefault();
|
|
Playercontrols.elementDrag(e, element);
|
|
},
|
|
false
|
|
);
|
|
document.getElementById("volume").removeEventListener(
|
|
"touchend",
|
|
function() {
|
|
Playercontrols.closeDragElement(element);
|
|
},
|
|
false
|
|
);
|
|
} else {
|
|
document.getElementById("volume-control-remote").removeEventListener(
|
|
"touchmove",
|
|
function(e) {
|
|
e.preventDefault();
|
|
Playercontrols.elementDrag(e);
|
|
},
|
|
false
|
|
);
|
|
document.getElementById("volume-control-remote").removeEventListener(
|
|
"touchend",
|
|
function() {
|
|
Playercontrols.closeDragElement();
|
|
},
|
|
false
|
|
);
|
|
}
|
|
},
|
|
|
|
fullscreen: function() {
|
|
var playerElement;
|
|
if (fireplace_initiated) {
|
|
playerElement = document.getElementById("fireplace_player");
|
|
} else {
|
|
playerElement = document.getElementById("player");
|
|
}
|
|
|
|
var requestFullScreen =
|
|
playerElement.requestFullScreen ||
|
|
playerElement.mozRequestFullScreen ||
|
|
playerElement.webkitRequestFullScreen;
|
|
if (requestFullScreen) {
|
|
requestFullScreen.bind(playerElement)();
|
|
}
|
|
},
|
|
|
|
play_pause: function() {
|
|
if (!chromecastAvailable) {
|
|
if (videoSource == "soundcloud") {
|
|
if (scUsingWidget) {
|
|
Player.soundcloud_player.isPaused(function(playing) {
|
|
playing = !playing;
|
|
if (!playing) {
|
|
Player.playVideo();
|
|
} else {
|
|
Player.pauseVideo();
|
|
}
|
|
was_stopped = true;
|
|
});
|
|
} else {
|
|
if (!Player.soundcloud_player.isPlaying()) {
|
|
Player.playVideo();
|
|
} else {
|
|
Player.pauseVideo();
|
|
}
|
|
}
|
|
} else {
|
|
if (Player.player.getPlayerState() == YT.PlayerState.PLAYING) {
|
|
Player.pauseVideo();
|
|
if (Helper.mobilecheck() && !window.MSStream && !embed) {
|
|
//if(Helper.mobilecheck() && !/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){
|
|
//document.getElementById("player").style.display = "none";
|
|
Helper.css("#player", "display", "none");
|
|
Helper.toggleClass(".video-container", "click-through");
|
|
Helper.toggleClass(".page-footer", "padding-bottom-extra");
|
|
}
|
|
} else if (
|
|
Player.player.getPlayerState() == YT.PlayerState.PAUSED ||
|
|
Player.player.getPlayerState() === YT.PlayerState.ENDED ||
|
|
Player.player.getPlayerState() === YT.PlayerState.CUED
|
|
) {
|
|
Player.playVideo();
|
|
//if(Helper.mobilecheck() && !/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream){
|
|
if (Helper.mobilecheck() && !window.MSStream) {
|
|
//document.getElementById("player").style.display = "block";
|
|
Helper.css("#player", "display", "block");
|
|
Helper.toggleClass(".video-container", "click-through");
|
|
Helper.toggleClass(".page-footer", "padding-bottom-extra");
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
Playercontrols.play_pause_show();
|
|
}
|
|
},
|
|
|
|
play_pause_show: function() {
|
|
if (chromecastAvailable) {
|
|
if (document.getElementById("play").classList.contains("hide")) {
|
|
Player.pauseVideo();
|
|
} else if (document.getElementById("pause").classList.contains("hide")) {
|
|
Player.playVideo();
|
|
}
|
|
} else {
|
|
if (!document.getElementById("pause").classList.contains("hide")) {
|
|
Helper.toggleClass("#pause", "hide");
|
|
Helper.toggleClass("#pause-overlay", "hide");
|
|
}
|
|
if (document.getElementById("play").classList.contains("hide")) {
|
|
Helper.toggleClass("#play", "hide");
|
|
Helper.toggleClass("#play-overlay", "hide");
|
|
}
|
|
}
|
|
},
|
|
|
|
settings: function() {
|
|
Helper.toggleClass("#qS", "hide");
|
|
},
|
|
|
|
changeQuality: function(wantedQ) {
|
|
if (Player.player.getPlaybackQuality != wantedQ) {
|
|
Player.player.setPlaybackQuality(wantedQ);
|
|
Player.player.getPlaybackQuality();
|
|
}
|
|
Helper.toggleClass("#qS", "hide");
|
|
},
|
|
|
|
mute_video: function() {
|
|
if (Helper.mobilecheck() || slider_type == "vertical") {
|
|
Helper.toggleClass(".volume-container", "hide");
|
|
} else {
|
|
if (!Player.player.isMuted()) {
|
|
if (chromecastAvailable)
|
|
castSession.sendMessage("urn:x-cast:zoff.me", { type: "mute" });
|
|
Playercontrols.choose_button(0, true);
|
|
Player.player.mute();
|
|
} else {
|
|
if (chromecastAvailable)
|
|
castSession.sendMessage("urn:x-cast:zoff.me", { type: "unMute" });
|
|
Player.player.unMute();
|
|
Playercontrols.choose_button(Player.player.getVolume(), false);
|
|
}
|
|
}
|
|
},
|
|
|
|
setVolume: function(vol) {
|
|
Player.setVolume(vol);
|
|
if (scUsingWidget) Player.soundcloud_player.setVolume(vol);
|
|
else Player.soundcloud_player.setVolume(vol / 100);
|
|
Playercontrols.choose_button(vol, false);
|
|
if (Player.player.isMuted()) Player.player.unMute();
|
|
},
|
|
|
|
choose_button: function(vol, mute) {
|
|
if (!mute) {
|
|
if (vol >= 0 && vol <= 33) {
|
|
if (!document.getElementById("v-full").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-full", "hide");
|
|
Helper.toggleClass("#v-full-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-medium").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-medium", "hide");
|
|
Helper.toggleClass("#v-medium-overlay", "hide");
|
|
}
|
|
if (document.getElementById("v-low").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-low", "hide");
|
|
Helper.toggleClass("#v-low-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-mute").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-mute", "hide");
|
|
Helper.toggleClass("#v-mute-overlay", "hide");
|
|
}
|
|
} else if (vol >= 34 && vol <= 66) {
|
|
if (!document.getElementById("v-full").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-full", "hide");
|
|
Helper.toggleClass("#v-full-overlay", "hide");
|
|
}
|
|
if (document.getElementById("v-medium").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-medium", "hide");
|
|
Helper.toggleClass("#v-medium-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-low").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-low", "hide");
|
|
Helper.toggleClass("#v-low-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-mute").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-mute", "hide");
|
|
Helper.toggleClass("#v-mute-overlay", "hide");
|
|
}
|
|
} else if (vol >= 67 && vol <= 100) {
|
|
if (document.getElementById("v-full").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-full", "hide");
|
|
Helper.toggleClass("#v-full-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-medium").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-medium", "hide");
|
|
Helper.toggleClass("#v-medium-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-low").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-low", "hide");
|
|
Helper.toggleClass("#v-low-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-mute").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-mute", "hide");
|
|
Helper.toggleClass("#v-mute-overlay", "hide");
|
|
}
|
|
}
|
|
} else {
|
|
if (!document.getElementById("v-full").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-full", "hide");
|
|
Helper.toggleClass("#v-full-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-medium").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-medium", "hide");
|
|
Helper.toggleClass("#v-medium-overlay", "hide");
|
|
}
|
|
if (!document.getElementById("v-low").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-low", "hide");
|
|
Helper.toggleClass("#v-low-overlay", "hide");
|
|
}
|
|
if (document.getElementById("v-mute").classList.contains("hide")) {
|
|
Helper.toggleClass("#v-mute", "hide");
|
|
Helper.toggleClass("#v-mute-overlay", "hide");
|
|
}
|
|
}
|
|
},
|
|
|
|
playPause: function() {
|
|
if (videoSource == "soundcloud") {
|
|
if (scUsingWidget) {
|
|
Player.soundcloud_player.isPaused(function(playing) {
|
|
playing = !playing;
|
|
if (!playing) {
|
|
Helper.addClass("#play", "hide");
|
|
Helper.removeClass("#pause", "hide");
|
|
Player.soundcloud_player.play();
|
|
} else {
|
|
Helper.removeClass("#play", "hide");
|
|
Helper.addClass("#pause", "hide");
|
|
Player.soundcloud_player.pause();
|
|
}
|
|
});
|
|
} else {
|
|
if (!Player.soundcloud_player.isPlaying()) {
|
|
Helper.addClass("#play", "hide");
|
|
Helper.removeClass("#pause", "hide");
|
|
Player.soundcloud_player.play();
|
|
} else {
|
|
Helper.removeClass("#play", "hide");
|
|
Helper.addClass("#pause", "hide");
|
|
Player.soundcloud_player.pause();
|
|
}
|
|
}
|
|
} else {
|
|
state = Player.player.getPlayerState();
|
|
button = document.getElementById("playpause");
|
|
if (state == YT.PlayerState.PLAYING) {
|
|
Player.pauseVideo();
|
|
} else if (state == YT.PlayerState.PAUSED) {
|
|
Player.playVideo();
|
|
}
|
|
}
|
|
},
|
|
|
|
visualVolume: function(val) {
|
|
var elmnt = document.getElementsByClassName("volume-handle")[0];
|
|
var cmp_elmnt = document.getElementById("volume");
|
|
var slid_elmnt = document.getElementsByClassName("volume-slid")[0];
|
|
|
|
if (slider_type != "vertical") {
|
|
var pos = (cmp_elmnt.offsetWidth / 100) * val;
|
|
var volume = 0;
|
|
//var pos = pos3 - cmp_elmnt.offsetLeft;
|
|
if (pos > -1 && pos < cmp_elmnt.offsetWidth + 1) {
|
|
elmnt.style.left = pos + "px";
|
|
volume = pos / cmp_elmnt.offsetWidth;
|
|
} else if (pos < 1) {
|
|
elmnt.style.left = 0 + "px";
|
|
volume = 0;
|
|
} else {
|
|
elmnt.style.left = cmp_elmnt.offsetWidth + "px";
|
|
volume = 1;
|
|
}
|
|
|
|
slid_elmnt.style.width = volume * 100 + "%";
|
|
Playercontrols.setVolume(volume * 100);
|
|
} else {
|
|
var pos = val;
|
|
var pos0 = window.innerHeight - pos - 14;
|
|
var volume = 0;
|
|
if (pos0 > 64 && pos0 < 164) {
|
|
volume = (pos0 - 64) / 100;
|
|
} else if (pos0 < 65) {
|
|
volume = 0;
|
|
} else {
|
|
volume = 1;
|
|
}
|
|
slid_elmnt.style.height = volume * 100 + "%";
|
|
Playercontrols.setVolume(volume * 100);
|
|
}
|
|
},
|
|
|
|
volumeOptions: function() {
|
|
if (!chromecastAvailable) {
|
|
if (Player.player.isMuted()) {
|
|
Player.player.unMute();
|
|
vol = Player.player.getVolume();
|
|
Playercontrols.visualVolume(Player.player.getVolume());
|
|
} else {
|
|
Player.player.mute();
|
|
Playercontrols.visualVolume(0);
|
|
}
|
|
}
|
|
},
|
|
|
|
hoverMute: function(foo) {
|
|
vol = Player.player.getVolume();
|
|
}
|
|
};
|