Есть несколько видеороликов YouTube, которые играют на моем сайте в карусели. Когда пользователь нажимает на видео youtube, я хочу остановить автоматическую прокрутку карусели. Вот код, который я пишу, который бросает меня «Игроки [player_id] .getPlayerState() не является функцией« ошибка.Youtube iframe api "getPlayerState" функция undefined
Также библиотека youtube загружается на моем сайте с триггерного javascript.
players = {};
window.onYouTubeIframeAPIReady = function(){
$('.youtube-video iframe').each(function() {
players[$(this).attr('id')] = new YT.Player($(this).attr('id'), {
events: {
'onStateChange': onPlayerStateChange($(this).attr('id'))
}
});
});
}
function onPlayerStateChange(player_id){
return function(event) {
if(players[player_id].getPlayerState() == 3 ||players[player_id].getPlayerState() == 1) {
//stop the auto scrolling
}
if(players[player_id].getPlayerState() == 0 || players[player_id].getPlayerState() == 2) {
//start auto scrolling.
}
}
}
Пожалуйста, дайте мне знать, если вы найдете эту проблему в моем коде. Заранее спасибо!
добавить HTML-код? где вы передали идентификатор видео? когда вы воспроизводите видео? – mpgn
Я передаю идентификатор видео как «$ (this) .attr ('id')". – savithraj
Как вы это решили? Я думаю, что у меня такая же проблема, загружая API-интерфейс YouTube Iframe из стороннего скрипта и получая «неопределенные» методы (на самом деле все члены объекта искажены однобуквенными именами). –