1

我有一个 Web 应用程序在使用Chrome 30.0.1599.101 m.

我正在使用 HTML5<video />标记并src使用javascript.

导致错误的页面有时会在第一个视频或第七个视频上出错。没有可预测的模式。

这是javascript处理src

var playing = false;
var media = $('#video')[0];

function initModule() {
    $.ajax({
        url: recap,
        type:'HEAD',
        error:
        function(){
            screenNotify('Error!', false, "404: Module video content could not be found." + recap, true);
        },
        success:
        function() {
            media.src = recap;
            registerListeners(media);
            media.load();
        }
    });
}

function registerListeners(listen) {
    listen.addEventListener('ended', hide_recap);
    listen.addEventListener('error', mediaError);
}

function mediaError(event) {
    screenNotify('Media Error!', false, "Media failed with code: " + event.currentTarget.error.code, true);
}

function play_recap() {
    if (!playing) {
        playing = true;
        media.play();
    }
}

function hide_recap() {
    if (playing) {
        playing = false;
        media.pause();
        media.currentTime = 0.0;
    }
}

有趣的是,当我调用 时没有抛出错误media.load(),相反,您需要查看网络请求以查看GET实际产生的结果(failed)

在此处输入图像描述

需要注意的另一件事是,此GET状态仅适用于驻留在此特定文件夹位置的视频:/interactive/vids/recap/. 该错误不会发生在应用程序中的其他任何地方。

最后,关于这个错误的最后一件奇怪的事情是,当应用程序最终尝试从 播放视频时play_recap(),实际上会播放大约 1 秒的视频,然后在video元素上抛出一个错误。

但是,错误是MEDIA_ERR_NETWORK此应用程序本地安装在Tomcat服务器上并在localhost.

那么,当一切都只在运行时,为什么会产生GET请求(failed)HTML5 <video>元素会产生 a呢?MEDIA_ERR_NETWORKlocalhost

4

1 回答 1

1

我注意到与Chrome 31. 我变得不一致MEDIA_ERR_NETWORK,所有其他经过测试的浏览器都可以正常工作。

除了重试之外,我没有找到任何其他解决方案 - 您可以尝试重新创建video元素或只是更改currentTime- 它对我的情况总是有帮助的。

于 2013-12-12T15:21:15.093 回答