Ответ 1
Попробуй это:
var video = document.getElementById("video-id-name");
if ( video.readyState === 4 ) {
// it loaded
}
Читайте здесь: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState
Итак, я использовал прослушиватель
document.getElementById("video").buffered.length
чтобы увидеть, превышает ли это значение 0
при загрузке видео или нет. Это работает для очень маленького видео и только в Google Chrome. Он вообще не работает в Firefox. Любые идеи о том, как заставить это работать?
Я действительно хочу подождать, пока загрузится 3 отдельных видеоролика, чтобы принять конкретное действие, как я могу это сделать?
Попробуй это:
var video = document.getElementById("video-id-name");
if ( video.readyState === 4 ) {
// it loaded
}
Читайте здесь: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState
Я считаю, что использование setInterval
работает для активного прослушивания, когда состояние readyState
видео изменяется, проверяя каждую полсекунду, пока оно не загрузится.
checkforVideo();
function checkforVideo() {
//Every 500ms, check if the video element has loaded
var b = setInterval(()=>{
if(VideoElement.readyState >= 3){
//This block of code is triggered when the video is loaded
//your code goes here
//stop checking every half second
clearInterval(b);
}
},500);
}
Если вы не используете ES6, просто замените () =>
на function()
Чтобы сделать это в слушателе, при обычных обстоятельствах вы захотите прослушать событие suspend. Это срабатывает, когда загрузка приостановлена или остановлена по какой-либо причине, включая ее завершение.
Вы также захотите прослушать воспроизведение для случаев, когда контент уже загружен (например, из кеша)
video.addEventListener("playing", function() {
console.log("[Playing] loading of video");
if ( video.readyState == 4 ) {
console.log("[Finished] loading of video");
}
});
video.addEventListener("suspend", function(e) {
console.log("[Suspended] loading of video");
if ( video.readyState == 4 ) {
console.log("[Finished] loading of video");
}
});
Источник: https://developer.mozilla.org/en/docs/Web/Guide/Events/Media_events
var video = document.getElementById("video");
video.onloadeddata = function() {
// video is loaded
}