Более корректное воспроизведение видео при быстром пролистывании
This commit is contained in:
parent
4477563c66
commit
51abd182a2
45
index.js
45
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
|
Loading…
Reference in New Issue