From 2a092577c69d41c06f8f094348c2dd88fc6b1a17 Mon Sep 17 00:00:00 2001 From: Ming Kin Choi Date: Sun, 27 Aug 2023 12:50:36 +0800 Subject: [PATCH] Fix iOS screen timeout on video playback loop mode --- assets/js/player.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/assets/js/player.js b/assets/js/player.js index bb53ac24d..0c37033dc 100644 --- a/assets/js/player.js +++ b/assets/js/player.js @@ -701,6 +701,21 @@ if (navigator.vendor === 'Apple Computer, Inc.' && video_data.params.listen) { }); } +// Safari screen timeout on looped video playback fix +if (navigator.vendor === 'Apple Computer, Inc.' && !video_data.params.listen && video_data.params.video_loop) { + player.loop(false); + player.on('loadedmetadata', function () { + player.on('timeupdate', function () { + if (player.remainingTime() < 2) { + player.loop(true); + setTimeout(() => { + player.loop(false); + }, 2000 / player.playbackRate()); + } + }); + }); +} + // Watch on Invidious link if (location.pathname.startsWith('/embed/')) { const Button = videojs.getComponent('Button');