HTML5 媒体活动未按预期进行

HTML5 media events not working as expected

我想创建一个图像后备以防无法加载视频。我发现解决方案是使用 media events 来解决这个问题。但是,它们似乎没有按预期工作。

/**
 * 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 时)。

我找到了解决方案。 <source> 元素似乎收到错误,而不是视频元素本身。