Я хочу создать резерв изображения в случае, если видео нельзя загрузить. Я выяснил, что для решения этой проблемы необходимо использовать media events. Однако, похоже, они работают не так, как ожидалось.События в формате HTML5 не работают должным образом
/**
* Dynamically load the video within the given slide.
*/
var loadVideo = function(slide) {
var video = $('<video muted>'),
source = $('<source>', {
src: slide.attr('data-video'),
type: 'video/mp4'
});
video.html(source);
video[0].addEventListener('canplay', revealVideo(video), false);
video[0].addEventListener('error', function() {
alert('Video could not be loaded.');
// fallback
}, false);
video[0].onended = function() { replayVideo(video) };
slide.append(video);
};
Это не имеет значения, будет ли успешно загружено видео или нет, revealVideo()
всегда дозвонилась. EventListener error
никогда не запускается (например, при использовании src
, который не существует).