Я работаю над проектом видеоплеера и использую videojs, а также videojs-ima для рекламных роликов.
Я наконец-то нашел способ узнать, есть реклама или нет; однако я пытаюсь вернуть логическое значение true
или false
, чтобы указать, когда запускать и выполнять определенный блок кода.
Вот мой код, в настоящее время он не работает так, как его предназначение.
if (navigator.userAgent.match(/iPhone/i) ||
navigator.userAgent.match(/iPad/i) ||
navigator.userAgent.match(/Android/i)) {
let checkAd = document.querySelectorAll('.ima-ad-container');
let checkAdLoop = setInterval(() => {
for (let i=0; i < checkAd.length; i++) {
if (checkAd[i].style.display == 'none') {
console.log('Ad is NOT playing.');
return false;
} else {
console.log('Ad is playing.');
return true;
// do nothing
}
}
}, 1000);
player.on('touchend', () => {
if (player.paused() && checkAdLoop() == false) {
player.play();
} else if (player.currentTime > 0 && checkAdLoop() == false) {
player.pause();
}
});
$('.vjs-icon-placeholder').on('touchend', () => {
if (player.paused() && checkAdLoop() == false) {
player.play();
} else if (player.currentTime > 0 && checkAdLoop() == false) {
player.pause();
}
});
}
Я был бы рад, если бы кто-то мог помочь мне понять и объяснить мне, почему это не работает. Как я могу исправить это?
Я знаю, что я близко. Заранее спасибо!