From ac22286f5e3ae503dab6e136ce24a175681747d6 Mon Sep 17 00:00:00 2001 From: OpenClaw Agent Date: Wed, 29 Apr 2026 11:58:44 +0200 Subject: [PATCH] Loop video promos: native loop attr + ended handler fallback --- public/app.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/public/app.js b/public/app.js index 1b0fb8e..4c4b706 100644 --- a/public/app.js +++ b/public/app.js @@ -206,10 +206,20 @@ async function playChannel(key) { // Safari / native HLS video.src = hlsUrl; } + // Belt-and-suspenders loop: native `loop` attribute + explicit handler + // (Shaka sometimes pauses on `ended` instead of looping the manifest) + video.loop = true; + video.addEventListener('ended', () => { + try { + video.currentTime = 0; + video.play().catch(() => {}); + } catch (_) {} + }); video.play().catch(() => { /* autoplay may be blocked, user can press play */ }); } catch (e) { console.warn('HLS load failed, falling back to native src:', e?.message); video.src = hlsUrl; + video.loop = true; video.play().catch(() => {}); }