检测video.load是否成功 - javascript

时间:2015-09-19 13:21:43

标签: javascript html html5-video

如何知道歌曲的加载是否成功? 类似的东西:

video.load({
        success : function() {
            alert("loading successful");
        },
        failure : function() {
            alert("loading not successful");
        } 
    });

我有要播放的歌曲列表,如果突然出现互联网连接问题并且下一个视频无法播放,我想播放下一首已经连接过的歌曲。

非常感谢!

2 个答案:

答案 0 :(得分:7)

这取决于您在加载视频时所谓的成功。能够完全播放视频是一回事,加载元数据是另一回事,每个都有事件。与失败相同:你会考虑很长一段时间来缓冲错误吗?

请参阅HTMLMediaElement触发的事件列表: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement

至于听这些事件,这段代码可能会有所帮助:

var v = document.createElement("VIDEO");

v.addEventListener("error", function (e) {
    console.log("Error while loading the video");
});

v.addEventListener("loadeddata", function () {
    console.log("Video has started loading successfully!");
});

v.src = "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4";

答案 1 :(得分:1)

您可以使用html5视频标记的error property(但此时似乎只是IE)。 另一种方法(对于FireFox)是HTML 5 Video Error handling in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

  

要检测所有子元素都无法加载,请检查media元素的networkState属性的值。如果这是HTMLMediaElement.NETWORK_NO_SOURCE,您知道所有源都无法加载。

希望这有帮助!