diff --git a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js index ea47fb3..6ae5204 100644 --- a/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js +++ b/Jellyfin.Plugin.MediaBarEnhanced/Web/mediaBarEnhanced.js @@ -1807,40 +1807,36 @@ const SlideCreator = { style: "object-fit: cover; object-position: center center; width: 100%; height: 100%; position: absolute; top: 0; left: 0; pointer-events: none;" }; - if (STATE.slideshow.isMuted) { - videoAttributes.muted = ""; - } + videoAttributes.muted = ""; backdrop = SlideUtils.createElement("video", videoAttributes); - - if (!STATE.slideshow.isMuted) { - backdrop.volume = 0.4; - } + backdrop.volume = 0.4; STATE.slideshow.videoPlayers[itemId] = backdrop; - backdrop.addEventListener('play', () => { - - // backdrop.addEventListener('play', (event) => { - // const slide = document.querySelector(`.slide[data-item-id="${itemId}"]`); - - // if (!slide || !slide.classList.contains('active')) { - // console.log(`Local video ${itemId} started playing but is not active, pausing.`); - // event.target.pause(); - // event.target.currentTime = 0; - // return; - // } + backdrop.addEventListener('play', (event) => { + const slide = document.querySelector(`.slide[data-item-id="${itemId}"]`); + if (!slide || !slide.classList.contains('active')) { + console.log(`Local video ${itemId} started playing but slide is not active, pausing.`); + event.target.pause(); + event.target.currentTime = 0; + return; + } if (CONFIG.waitForTrailerToEnd && STATE.slideshow.slideInterval) { STATE.slideshow.slideInterval.stop(); } }); backdrop.addEventListener('ended', () => { - SlideshowManager.nextSlide(); + const slide = document.querySelector(`.slide[data-item-id="${itemId}"]`); + if (slide && slide.classList.contains('active')) { + SlideshowManager.nextSlide(); + } }); backdrop.addEventListener('error', () => { - if (CONFIG.waitForTrailerToEnd) { + const slide = document.querySelector(`.slide[data-item-id="${itemId}"]`); + if (CONFIG.waitForTrailerToEnd && slide && slide.classList.contains('active')) { SlideshowManager.nextSlide(); } }); @@ -2314,14 +2310,22 @@ const SlideshowManager = { // Manage Video Playback: Stop others, Play current - // 1. Stop all other YouTube players + // 1. Stop all other YouTube players and local video elements if (STATE.slideshow.videoPlayers) { Object.keys(STATE.slideshow.videoPlayers).forEach(id => { if (id !== currentItemId) { const p = STATE.slideshow.videoPlayers[id]; - if (p && typeof p.pauseVideo === 'function') { + if (!p) return; + // YouTube player + if (typeof p.pauseVideo === 'function') { p.pauseVideo(); } + // HTML5