Автовоспроизведение YouTube
Взял пример с интернета. Вставил первый раз отработал, после перезагрузки перестал работать. Доработал, тоже самое
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var videoPlayer, isLoaded = 0;
function onYouTubePlayerAPIReady() {
videoPlayer = new YT.Player(videoParams.id, {
width: '100%',
height: '640',
playerVars: {
autoplay: 1,
controls: 0,
showinfo: 0,
rel: 0
},
videoId: videoParams.video,
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
$(window).scroll(function () {
let videoPos = $('#' + videoParams.id).offset().top;
if (videoPos < window.pageYOffset - window.innerHeight || videoPos > window.pageYOffset + window.innerHeight) {
pauseVideo(event);
} else {
playVideo(event);
}
});
}
function onPlayerStateChange(event) {
console.log(event);
}
function pauseVideo(event) {
event.target.pauseVideo();
}
function playVideo(event) {
event.target.playVideo();
}
onPlayerStateChange Выдает состояние -1 (видео еще не воспроизводилось). Как сделать так, чтобы при скролле видео воспроизводилось/останавливалось
Также судя документации, если плеер в состоянии -1, то воспроизведение невозможно. Но добавив кнопки управления воспроизведением, все работает, но только не при скролле. На данные кнопки вешал триггеры на клик при скролле