rm player.js
This commit is contained in:
@ -1,140 +0,0 @@
|
||||
var domReady = false;
|
||||
var domInterval = null;
|
||||
var isPlaying = false;
|
||||
var canPlay = false;
|
||||
document.addEventListener('astro:page-load', function() {
|
||||
domInterval = setInterval(() => {
|
||||
/* Patch */
|
||||
if ($(".play")) {
|
||||
domReady = true;
|
||||
try {
|
||||
sound.stop();
|
||||
} catch (e) { }
|
||||
}
|
||||
if (domReady) {
|
||||
initialize();
|
||||
clearInterval(domInterval);
|
||||
}
|
||||
}, 500)
|
||||
});
|
||||
|
||||
initialize = () => {
|
||||
(function () {
|
||||
var sound = new Howl({
|
||||
src: ["https://stream.codey.lol/sfm.ogg"],
|
||||
html5: true,
|
||||
onloaderror: (id) => { console.log(`Fail: ${id}`) },
|
||||
onplayerror: (id) => { console.log(`Fail b: ${id}`)},
|
||||
onend: (e) => { sound.play(); }
|
||||
});
|
||||
|
||||
console.log(sound);
|
||||
|
||||
let currentTime = 0;
|
||||
let currentDuration = 0;
|
||||
let currentUUID = null;
|
||||
const title = $('.music-player__title');
|
||||
const author = $('.music-player__author');
|
||||
const cover = $('.cover');
|
||||
const genre = $('.music-player__genre');
|
||||
const playBtn = $('#play');
|
||||
const progressBar = $('#length');
|
||||
const currentTimeIndicator = $('.music-time__current');
|
||||
const leftTimeIndicator = $('.music-time__last');
|
||||
|
||||
|
||||
const fail = (type="soft") => {
|
||||
$(title).text('Offline');
|
||||
$(author).text('');
|
||||
$(genre).text('');
|
||||
$(cover).prop('src', '/images/radio_art_default.jpg')
|
||||
$(genre).hide();
|
||||
$(currentTimeIndicator).text('0:00');
|
||||
$(leftTimeIndicator).text('0:00');
|
||||
if (type==="hard") {
|
||||
canPlay = false;
|
||||
}
|
||||
}
|
||||
|
||||
const getCurrentTrack = () => {
|
||||
$.ajax({
|
||||
url: API_URL+'/radio/np',
|
||||
method: "POST",
|
||||
contentType: "application/json"
|
||||
}).done(function(data) {
|
||||
if (data.artist == "N/A" && data.song == "N/A") {
|
||||
// server issue/not playing
|
||||
return fail("hard");
|
||||
}
|
||||
canPlay = true;
|
||||
if (currentUUID == data.uuid) {
|
||||
currentTime = data.elapsed;
|
||||
currentDuration = data.duration;
|
||||
return changeBar(); // no change
|
||||
}
|
||||
currentUUID = data.uuid;
|
||||
$(title).text(data.song);
|
||||
author_text = data.artist;
|
||||
$(author).text(author_text);
|
||||
if (data.genre && data.genre !== "N/A") {
|
||||
$(genre).text(data.genre);
|
||||
if (! $(genre).is(':visible')) {
|
||||
$(genre).show();
|
||||
}
|
||||
} else { // API response does not contain genre
|
||||
if ($(genre).is(':visible')) {
|
||||
$(genre).hide();
|
||||
}
|
||||
}
|
||||
$(cover).prop('src', API_URL+'/radio/album_art?'+Date.now());
|
||||
changeBar();
|
||||
}).fail(function (e, eData, jqXHR) {
|
||||
return fail();
|
||||
});
|
||||
}
|
||||
|
||||
getCurrentTrack();
|
||||
setInterval(() => { getCurrentTrack(); }, 1000);
|
||||
|
||||
const changeBar = () => {
|
||||
const percentage = (currentTime / currentDuration).toFixed(3);
|
||||
$(progressBar).css('transition', "");
|
||||
|
||||
//set current time
|
||||
const minute = Math.floor(currentTime / 60);
|
||||
const second = Math.floor(currentTime % 60);
|
||||
const leftTime = currentDuration - currentTime;
|
||||
$(currentTimeIndicator).html(("0" + minute).substr(-2) + ":" + ("0" + second).substr(-2));
|
||||
|
||||
//set left time
|
||||
const leftMinute = Math.floor(leftTime / 60);
|
||||
const leftSecond = Math.floor(leftTime % 60);
|
||||
|
||||
$(leftTimeIndicator).html(
|
||||
("0" + leftMinute).substr(-2) + ":" + ("0" + leftSecond).substr(-2));
|
||||
|
||||
//set time bar
|
||||
$(progressBar).css('width', percentage * 100 + "%");
|
||||
}
|
||||
|
||||
const showTime = () => {
|
||||
timer = setInterval(() => changeBar(), 500);
|
||||
}
|
||||
|
||||
const togglePlayback = () => {
|
||||
if (window.isPlaying) {
|
||||
sound.stop();
|
||||
sound.unload();
|
||||
} else {
|
||||
sound.play();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Exports
|
||||
*/
|
||||
|
||||
window.togglePlayback = togglePlayback;
|
||||
window.sound = sound;
|
||||
})();
|
||||
}
|
Reference in New Issue
Block a user