我有一个嵌入了 youtube 的 iFrame API 的 youtube 视频。我想:
- 当用户暂停视频时显示半透明覆盖(WORKS)
- 用户播放视频时隐藏该叠加层(WORKS)
- 当用户通过 youtube 控件“寻找”时不显示覆盖(可能吗?)
难以控制搜索行为。可能吗?
要重现,请将搜索保持在同一位置几秒钟,然后观察叠加层的出现。示例 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();
}
}