feat: add endpoint to serve embedded cover art from audio files
All checks were successful
Build and Push Docker Image / docker (push) Successful in 9s
All checks were successful
Build and Push Docker Image / docker (push) Successful in 9s
This commit is contained in:
@@ -57,9 +57,7 @@ function handlePlayTrack(msg) {
|
||||
if ($guessTitle) $guessTitle.value = '';
|
||||
if ($guessArtist) $guessArtist.value = '';
|
||||
if ($answerResult) { $answerResult.textContent=''; $answerResult.className='mt-1 text-sm'; }
|
||||
try {
|
||||
$audio.preload = 'auto';
|
||||
} catch {}
|
||||
try { $audio.preload = 'auto'; } catch {}
|
||||
$audio.src = t.url;
|
||||
const pf = document.getElementById('progressFill');
|
||||
if (pf) {
|
||||
@@ -68,6 +66,8 @@ function handlePlayTrack(msg) {
|
||||
const rd = document.getElementById('recordDisc');
|
||||
if (rd) {
|
||||
rd.classList.remove('spin-record');
|
||||
// Reset cover to default logo at the start of a new track
|
||||
rd.src = '/hitstar.png';
|
||||
}
|
||||
const { startAt, serverNow } = msg;
|
||||
const now = Date.now();
|
||||
@@ -134,6 +134,15 @@ function handleReveal(msg) {
|
||||
if ($placeArea) {
|
||||
$placeArea.classList.add('hidden');
|
||||
}
|
||||
// Try to load embedded cover art and replace the center image
|
||||
const rd = document.getElementById('recordDisc');
|
||||
if (rd && track?.id) {
|
||||
const coverUrl = `/cover/${encodeURIComponent(track.id)}`;
|
||||
const img = new Image();
|
||||
img.onload = () => { rd.src = coverUrl; };
|
||||
img.onerror = () => { /* keep default logo */ };
|
||||
img.src = coverUrl + `?t=${Date.now()}`; // bypass cache just in case
|
||||
}
|
||||
}
|
||||
|
||||
function handleGameEnded(msg) {
|
||||
|
||||
Reference in New Issue
Block a user