我将youtube视频嵌入到页面中,当播放器状态发生变化时(当视频播放或暂停时),我将视频播放类添加到容器中并将其删除。
当只有1个视频时,以下工作正常。但是,如果有2个视频,则添加该类并几乎立即删除。
我认为这是因为window.YT.PlayerState
并不限制当前状态发生变化的视频。我该如何纠正这个范围?
注意,一次只能播放1个视频。视频位于旋转木马中,当您转到下一张幻灯片时,视频会暂停。
if ($youtubeVideos.length) {
var tag = document.createElement('script'),
firstScriptTag = document.getElementsByTagName('script')[0];
tag.src = '//www.youtube.com/iframe_api';
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
window.onYouTubeIframeAPIReady = function() {
$youtubeVideos.each(function () {
var player = new window.YT.Player(this.id, {
events: {
onReady: function (e) {
var state = e.target.getPlayerState();
if (state === window.YT.PlayerState.BUFFERING || state === window.YT.PlayerState.PLAYING) {
$element.addClass('video-playing');
activePlayer = player;
}
},
onStateChange: function (e) {
if (e.data === window.YT.PlayerState.BUFFERING || e.data === window.YT.PlayerState.PLAYING) {
$element.addClass('video-playing');
activePlayer = player;
} else {
$element.removeClass('video-playing');
activePlayer = null;
}
}
}
});
});
};
}