如何使用 Sources 检测 Audio 标签的错误类型

Ste*_*ert 5 html javascript audio error-handling

似乎在<source><audio>标签引入元素之前,当音频出现错误时,您可以在audio.error.code. 然而,这似乎不再发生了。由于错误事件现在只在子<source>元素上触发,不再在音频标签上触发,音频标签不再具有error属性(它始终为空)。源标签也没有错误属性。

你可以在这个jsFiddle 中看到这一点。

既然音频标签没有得到错误属性,你打算如何检测错误类型?似乎这是每个浏览器中的错误。

epa*_*llo 5

如果在函数后面添加 true,onerror 将会触发。

var audio = document.getElementById('audio');    
audio.addEventListener('error', function(e) {
    var noSourcesLoaded = (this.networkState===HTMLMediaElement.NETWORK_NO_SOURCE);
    if(noSourcesLoaded) console.log("could not load audio source");
}, true);
Run Code Online (Sandbox Code Playgroud)