diff --git a/server/player/index.html b/server/player/index.html index b142510..d11f640 100644 --- a/server/player/index.html +++ b/server/player/index.html @@ -539,7 +539,8 @@ video.playsInline = true; video.crossOrigin = 'anonymous'; video.style.cssText = 'width:100%;height:100%;object-fit:contain;background:#000'; - video.onended = () => nextItem(); + video.loop = (playlist.length === 1); + video.onended = () => { if (!video.loop) nextItem(); }; video.onerror = (e) => { console.error('Video error:', src, e); setTimeout(nextItem, 3000); }; video.onloadeddata = () => { console.log('Video loaded:', item.filename, 'muted:', video.muted); diff --git a/server/player/sw.js b/server/player/sw.js index 4460dbd..7e4f70a 100644 --- a/server/player/sw.js +++ b/server/player/sw.js @@ -1,4 +1,4 @@ -const CACHE_NAME = 'rd-player-v1'; +const CACHE_NAME = 'rd-player-v2'; const STATIC_ASSETS = ['/player/', '/player/index.html', '/socket.io/socket.io.js']; // Install: cache static assets @@ -29,7 +29,7 @@ self.addEventListener('fetch', (event) => { caches.match(event.request).then(cached => { if (cached) return cached; return fetch(event.request).then(response => { - if (response.ok) { + if (response.ok && response.status === 200) { const clone = response.clone(); caches.open(CACHE_NAME).then(cache => cache.put(event.request, clone)); }