YouTube API 3 воспроизводит плейлист песен в фоновом режиме (неактивная вкладка) в Chrome
Я работал над моим личным проектом, пытаясь выучить Javascript. Пока все идет хорошо.
Я собираю ссылки на YouTube с какой-либо внешней веб-страницы, создаю из них плейлист и воспроизводю их один за другим, когда заканчивается первый.
Система работает должным образом, если у меня активна вкладка, но когда я делаю что-то еще на другой вкладке, но продолжаю слушать песню, она не загружается автоматически. Один и тот же случай работает как в Firefox, так и в Safari.
Я исследовал безуспешно, прежде чем просить о помощи, и знаю, что это была "функция" от команды Google Chrome, но я видел, что другой сайт решает эту проблему даже в неактивной вкладке.
Поскольку я новичок в этой области, я прошу помощи от сообщества Stackru.
В Chrome http://roll.io/ ---- Это не работает в неактивной вкладке http://8tracks.com/weedies/hip-hop-suite-vol-1 ---- Это работает в неактивной вкладке
Если вы найдете что-нибудь, что может помочь, я был бы очень благодарен.
Вот мой код, который я имею для YouTube.
function onYouTubeIframeAPIReady(youtubeID, i) {
var rand = getRandomArbitrary();
var e = document.getElementById(youtubeID), t = document.createElement("img")
t.setAttribute("id", "youtube-icon"), t.style.cssText = "cursor:pointer;cursor:hand", e.appendChild(t);
var a = document.createElement("div");
a.setAttribute("id", "youtube-player"+i+rand), e.appendChild(a);
var o = function (e) {
var a = e ? "pause.svg" : "play-button.svg";
t.setAttribute("src", "/img/" + a)
};
e.onclick = function () {
player.getPlayerState() === YT.PlayerState.PLAYING || player.getPlayerState() === YT.PlayerState.BUFFERING ? (player.pauseVideo(), o(!1)) : (player.playVideo(), o(!0))
};
var player = new YT.Player("youtube-player"+i+rand, {
height: "0",
width: "0",
videoId: e.dataset.video,
playerVars: {autoplay: e.dataset.autoplay, loop: e.dataset.loop},
events: {
onReady: function (e) {
player.setPlaybackQuality("small"), o(player.getPlayerState() !== YT.PlayerState.CUED)
player.unMute();
}, onStateChange: function (e) {
e.data === YT.PlayerState.ENDED && o(!1)
}
}
})
return player;
}
Спасибо:)