Add delay before stopping other video players during slideshow transitions

This commit is contained in:
CodeDevMLH
2026-02-19 03:35:38 +01:00
parent 8b0d6f137d
commit 0534d0458e

View File

@@ -2393,30 +2393,32 @@ const SlideshowManager = {
// Manage Video Playback: Stop others, Play current
// 1. Stop all other YouTube players and local video elements, release connections
if (STATE.slideshow.videoPlayers) {
Object.keys(STATE.slideshow.videoPlayers).forEach(id => {
if (id !== currentItemId) {
const p = STATE.slideshow.videoPlayers[id];
if (!p) return;
// YouTube player
if (typeof p.pauseVideo === 'function') {
p.pauseVideo();
}
// HTML5 <video> element (local trailers), release HTTP connection
if (p instanceof HTMLVideoElement) {
p.pause();
p.muted = true;
p.currentTime = 0;
// Save src to data-src and release the HTTP streaming connection
if (p.src && !p.getAttribute('data-src')) {
p.setAttribute('data-src', p.src);
setTimeout(() => {
if (STATE.slideshow.videoPlayers) {
Object.keys(STATE.slideshow.videoPlayers).forEach(id => {
if (id !== currentItemId) {
const p = STATE.slideshow.videoPlayers[id];
if (!p) return;
// YouTube player
if (typeof p.pauseVideo === 'function') {
p.pauseVideo();
}
// HTML5 <video> element (local trailers), release HTTP connection
if (p instanceof HTMLVideoElement) {
p.pause();
p.muted = true;
p.currentTime = 0;
// Save src to data-src and release the HTTP streaming connection
if (p.src && !p.getAttribute('data-src')) {
p.setAttribute('data-src', p.src);
}
p.removeAttribute('src');
p.load();
}
p.removeAttribute('src');
p.load();
}
}
});
}
});
}
}, CONFIG.fadeTransitionDuration);
// 2. Pause all other HTML5 videos e.g. local trailers
document.querySelectorAll('video').forEach(video => {