Fix videos management on macOS.
This commit is contained in:
parent
4685b889c2
commit
48f70a8552
|
@ -301,8 +301,9 @@ var IV = {
|
||||||
const top = IV.getElementTop(wrap);
|
const top = IV.getElementTop(wrap);
|
||||||
const bottom = top + wrap.offsetHeight;
|
const bottom = top + wrap.offsetHeight;
|
||||||
if (top < visibleBottom && bottom > visibleTop) {
|
if (top < visibleBottom && bottom > visibleTop) {
|
||||||
if (!video.filled) {
|
if (!video.created) {
|
||||||
video.filled = true;
|
video.created = new Date();
|
||||||
|
video.loaded = false;
|
||||||
element.innerHTML = '<video muted class="'
|
element.innerHTML = '<video muted class="'
|
||||||
+ (video.small ? 'video-small' : '')
|
+ (video.small ? 'video-small' : '')
|
||||||
+ '"'
|
+ '"'
|
||||||
|
@ -312,29 +313,31 @@ var IV = {
|
||||||
? ''
|
? ''
|
||||||
: ' controls'))
|
: ' controls'))
|
||||||
+ (video.loop ? ' loop' : '')
|
+ (video.loop ? ' loop' : '')
|
||||||
+ '><source src="'
|
+ ' oncanplay="IV.checkVideos();"'
|
||||||
|
+ ' onloadeddata="IV.checkVideos();">'
|
||||||
|
+ '<source src="'
|
||||||
+ video.src
|
+ video.src
|
||||||
+ '" type="video/mp4" />'
|
+ '" type="video/mp4" />'
|
||||||
+ '</video>';
|
+ '</video>';
|
||||||
var media = element.firstChild;
|
var media = element.firstChild;
|
||||||
|
media.oncanplay = IV.checkVideos;
|
||||||
|
media.onloadeddata = IV.checkVideos;
|
||||||
|
}
|
||||||
|
} else if (video.created && video.autoplay) {
|
||||||
|
video.created = false;
|
||||||
|
element.innerHTML = '';
|
||||||
|
}
|
||||||
|
if (video.created && !video.loaded) {
|
||||||
|
var media = element.firstChild;
|
||||||
const HAVE_CURRENT_DATA = 2;
|
const HAVE_CURRENT_DATA = 2;
|
||||||
if (media && media.readyState >= HAVE_CURRENT_DATA) {
|
if (media && media.readyState >= HAVE_CURRENT_DATA) {
|
||||||
|
video.loaded = true;
|
||||||
media.classList.add('loaded');
|
media.classList.add('loaded');
|
||||||
IV.stopAnimations(media);
|
if ((new Date() - video.created) < 100) {
|
||||||
} else if (media) {
|
|
||||||
const created = new Date();
|
|
||||||
media.addEventListener('canplay', function () {
|
|
||||||
media.classList.add('loaded');
|
|
||||||
if ((new Date() - created) < 100) {
|
|
||||||
IV.stopAnimations(media);
|
IV.stopAnimations(media);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (video.filled && video.autoplay) {
|
|
||||||
video.filled = false;
|
|
||||||
element.innerHTML = '';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
showTooltip: function (text) {
|
showTooltip: function (text) {
|
||||||
|
|
Loading…
Reference in New Issue