Всем доброго дня!
Понадобилось автоматом запускать видео при открытии страницы.
Изначально сделал через iframe
<iframe
id="ytplayer"
width="480"
height="270"
src="https://www.youtube.com/embed/TaY7vohLXK4?controls=1&fs=0&modestbranding=1&rel=0&mute=1&showinfo=0&autoplay=1"
allow="autoplay; encrypted-media;"></iframe>
Работает, но без звука.
Захотелось со звуком, менял значение параметра mute=1, удалял его, добавлял параметр volume с разными значениями, как итог - не работает автозапуск.
Решил переделать на запуск через js api.
Взял из документации код
<div id="player"></div>
<script>
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 player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '270',
width: '480',
videoId: 'TaY7vohLXK4',
playerVars: { 'autoplay': 1, 'controls': 1 },
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
function onPlayerReady(event) {
//player.playVideo();
event.target.playVideo();
//console.log(player);
}
function onPlayerStateChange(event) {
//console.log(player.getPlayerState());
}
</script>
Автозапуск не работает в принципе, пробовал убирать / добавлять playerVars, внутри onPlayerReady пробовал по разному запуск запускать - не помогает.
console.log(player) - объект есть.
В консоли ошибок нет.
console.log(player.getPlayerState()) - выдает -1, 3, -1 (что логично).
Перевернул всю документацию, начитался стэков - ничего не помогает...
Что я делаю не так?