From 51abd182a2c7da51494a6b62e9381055ab12338f Mon Sep 17 00:00:00 2001
From: Valentin Silytuin <valentinsilyutin@icloud.com>
Date: Thu, 24 Apr 2025 23:32:07 +0400
Subject: [PATCH] =?UTF-8?q?=D0=91=D0=BE=D0=BB=D0=B5=D0=B5=20=D0=BA=D0=BE?=
 =?UTF-8?q?=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D0=BE=D0=B5=20=D0=B2=D0=BE?=
 =?UTF-8?q?=D1=81=D0=BF=D1=80=D0=BE=D0=B8=D0=B7=D0=B2=D0=B5=D0=B4=D0=B5?=
 =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B2=D0=B8=D0=B4=D0=B5=D0=BE=20=D0=BF?=
 =?UTF-8?q?=D1=80=D0=B8=20=D0=B1=D1=8B=D1=81=D1=82=D1=80=D0=BE=D0=BC=20?=
 =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=BB=D0=B8=D1=81=D1=82=D1=8B=D0=B2=D0=B0?=
 =?UTF-8?q?=D0=BD=D0=B8=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 index.js | 45 +++++++++++++++++++++++++++++----------------
 1 file changed, 29 insertions(+), 16 deletions(-)

diff --git a/index.js b/index.js
index 1f428f9..cb81385 100644
--- a/index.js
+++ b/index.js
@@ -23,14 +23,18 @@ const playVideo = (slide) => {
 
     if (youtube) {
         if (slide.YTPlayer) {
-            slide.YTPlayer.playVideo();
+            if (slide.classList.contains('swiper-slide-active')) {
+                slide.YTPlayer.playVideo();
+            }
         } else if (window.YT) {
             if (GalleryYTPlayer.state) {
                 slide.YTPlayer = new YT.Player(youtube, {
                     videoId: youtube.dataset.id,
                     events: {
                         onReady(event) {
-                            event.target.playVideo();
+                            if (slide.classList.contains('swiper-slide-active')) {
+                                event.target.playVideo();
+                            }
                         },
                     },
                 });
@@ -47,12 +51,16 @@ const playVideo = (slide) => {
         }
     } else if (vk) {
         if (slide.VKPlayer) {
-            slide.VKPlayer.play();
+            if (slide.classList.contains('swiper-slide-active')) {
+                slide.VKPlayer.play();
+            }
         } else if (window.VK?.VideoPlayer) {
             if (GalleryVKPlayer.state) {
                 slide.VKPlayer = VK.VideoPlayer(vk);
                 slide.VKPlayer.on('inited', () => {
-                    slide.VKPlayer.play();
+                    if (slide.classList.contains('swiper-slide-active')) {
+                        slide.VKPlayer.play();
+                    }
                 });
             } else {
                 GalleryVKPlayer.addListener(() => {
@@ -71,13 +79,15 @@ const playVideo = (slide) => {
             if (window.GalleryRTPlayer) {
                 if (window.GalleryRTPlayer.has(videoId)) {
                     clearInterval(checkInterval);
-                    rt.contentWindow.postMessage(
-                        JSON.stringify({
-                            type: 'player:play',
-                            data: {},
-                        }),
-                        '*',
-                    );
+                    if (slide.classList.contains('swiper-slide-active')) {
+                        rt.contentWindow.postMessage(
+                            JSON.stringify({
+                                type: 'player:play',
+                                data: {},
+                            }),
+                            '*',
+                        );
+                    }
                 }
             } else {
                 clearInterval(checkInterval);
@@ -338,11 +348,14 @@ const init = async (items = [], options = {}, index = 0) => {
     });
 
     swiper.on('slideChange', function () {
-        if (this.slides[this.previousIndex].classList.contains('advdominion-lg__item_video')) {
-            pauseVideo(this.slides[this.previousIndex]);
-        }
-        if (this.slides[this.activeIndex].classList.contains('advdominion-lg__item_video')) {
-            playVideo(this.slides[this.activeIndex]);
+        for (const [index, slide] of Object.entries(this.slides)) {
+            if (slide.classList.contains('advdominion-lg__item_video')) {
+                if (Number(index) === this.activeIndex) {
+                    playVideo(slide);
+                } else {
+                    pauseVideo(slide);
+                }
+            }
         }
     });