Чтобы реализовать автоматическое воспроизведение видео в Swiper, при этом останавливая видео, когда слайд становится неактивным, и начиная воспроизведение, когда слайд становится активным, вы можете использовать события Swiper. В вашем случае, поскольку играют несколько видео и вам необходимо отслеживать их состояние, необходимо написать немного кода на JavaScript.
Вот пример, как это можно сделать:
### HTML
```html
<div class="main-home__slider swiper">
<div class="main-home__wrapper swiper-wrapper">
<div class="main-home__slide swiper-slide">
<video muted playsinline class="video" src="./files/videos/video.mp4">
<source src="./files/videos/video.mp4" type="video/mp4">
</video>
</div>
<div class="main-home__slide swiper-slide">
<video muted playsinline class="video" src="./files/videos/video-2.mp4">
<source src="./files/videos/video-2.mp4" type="video/mp4">
</video>
</div>
</div>
</div>
```
### JavaScript
```javascript
const swiper = new Swiper('.swiper', {
loop: true,
on: {
slideChange: function () {
handleVideoPlayback(this);
}
}
});
// Функция для обработки воспроизведения видео
function handleVideoPlayback(swiper) {
const slides = swiper.slides;
slides.forEach((slide, index) => {
const video = slide.querySelector('.video');
if (video) {
if (index === swiper.activeIndex) {
// Если слайд активен, запускаем видео
video.play();
} else {
// Если слайд неактивен, приостанавливаем видео
video.pause();
}
}
});
}
// Запускаем видео на первом слайде при инициализации
document.addEventListener('DOMContentLoaded', function () {
const initialVideo = document.querySelector('.swiper-slide-active .video');
if (initialVideo) {
initialVideo.play();
}
});
```
### Объяснение кода
1. **Инициализация Swiper**: Мы создаём экземпляр Swiper и передаём ему параметры. Устанавливаем обработчик события `slideChange`, который вызывается каждый раз при смене слайда.
2. **Функция `handleVideoPlayback`**: В этой функции мы проходим по всем слайдам, и проверяем, является ли слайд активным. Если он активен, воспроизводим видео, если нет — приостанавливаем.
3. **Первоначальное воспроизведение**: После загрузки страницы мы воспроизводим видео на первом слайде, чтобы обеспечить автоматическое воспроизведение.
### Важно
1. Убедитесь, что ваше видео имеет атрибут `muted`, так как большинство браузеров блокируют автозапуск видео с включённым звуком.
2. Вы можете адаптировать решение под свою структуру и требования.
3. Этот код не учитывает необходимость ждать завершения видео для смены слайда. Если вам нужно, чтобы смена слайда происходила только после завершения видео, можно добавить обработчик события `ended` для видео и инициализировать смену слайда внутри этого обработчика.