我有一个 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