У меня есть видео с YouTube, которое я встроил в iFrame API youtube. Я хотел бы:Как отличить «искать» от «паузы» через YouTube Player IFrame API
- показать полупрозрачный накладку, когда пользователь приостанавливает видео (работа)
- скрыть, что наложение, когда пользователь воспроизводит видео (работа)
- НЕ показывать накладку, когда пользователь «поиск» через органы управления с помощью трубки (ВОЗМОЖНО?)
Не удается контролировать поведение поиска. Является ли это возможным?
Чтобы воспроизвести, удерживайте поиск в том же положении в течение нескольких секунд и смотрите наложение. Пример jsfiddle здесь: http://jsfiddle.net/dNU84/3/
var ytvideo;
window.onYouTubePlayerAPIReady = function() {
ytvideo = new YT.Player('ytvideo', {
width: '400',
height: '300',
videoId: 'BOksW_NabEk',
playerVars: {
'autoplay': 1,
'controls': 1
},
events: {
"onStateChange": onPlayerStateChange
}
});
}
function showOverlay() {
if ($('.video .video-overlay').length) $('.video .video-overlay').fadeIn(1200);
}
function hideOverlay() {
if ($('.video .video-overlay').length) $('.video .video-overlay').hide();
}
var overlay;
function onPlayerStateChange(event) {
console.log(event.data);
clearTimeout(overlay);
// youtube fires 2xPAUSED, 1xPLAYING on seek
if (event.data == YT.PlayerState.PAUSED) {
overlay = setTimeout(showOverlay, 1000);
}
if (event.data == YT.PlayerState.PLAYING) {
overlay = hideOverlay();
}
}
Это работает и должно быть текущим принятым ответом. – toddmetheny
Блестящий! Я тоже боролся с этим. – disinfor
Спасибо! если использовал 'event.data == YT.PlayerState.PAUSED', который не выполняет работу по поиску – Yannuth