Javascript 音频错误参数
我正在创建一个基于HTML5的小型网站。在某个时刻,我想播放一个声音。我播放的声音如下:Javascript 音频错误参数,javascript,html,Javascript,Html,我正在创建一个基于HTML5的小型网站。在某个时刻,我想播放一个声音。我播放的声音如下: sound = new Audio(url); sound.addEventListener("error", function(e) { console.log("Logging playback error: " + e); }); sound.load(); sound.play(); 当发生错误时,我无法找出e中的内容。不幸的是,这个
sound = new Audio(url);
sound.addEventListener("error", function(e) {
console.log("Logging playback error: " + e); });
sound.load();
sound.play();
当发生错误时,我无法找出e
中的内容。不幸的是,这个错误只发生在iPad上,所以我不能使用Firebug
来调试它。在文件中我没有找到对这个论点的描述
任何帮助都将不胜感激。我可能找到了该消息对象。错误代码位于sound.error.code
或e.currentTarget.error.code
属性中,它可以包含以下4位数字之一:
MEDIA_ERR_ABORTED=1
MEDIA_ERR_NETWORK=2
MEDIA_ERR_DECODE=3
MEDIA_ERR_SRC_NOT_SUPPORTED=4
基于此,我创建了一个函数,该函数将输出错误消息,而不是代码。它使用ES6中的方法,但在撰写本文时(2019年11月),它在所有主要浏览器中都得到了完全支持
这是一个介绍函数用法的代码段:
const getMediaErrorMessage=error=>Object.keys(Object.getPrototypeOf(error.currentTarget.error)).find(key=>error.currentTarget.error[key]==error.currentTarget.error.code);
常量url='xxx';//使用错误的url,以获取错误
const sound=新音频(url);
sound.addEventListener('error',e=>console.log('Media error occurrent:${getMediaErrorMessage(e)}`));
sound.load();
声音。播放()代码>我做了同样的搜索。e在任何地方都没有记录。它可能是e.text,但也可能是e.message。我想知道e
还包含哪些内容。好的,您是否可以尝试添加一些类似于此示例中的列表,仅用于“error”侦听器?如您所见,错误处理程序只是尝试记录错误。JSFIDLE非常棒!谢谢但是,是否有这方面的文件?我真的不想在各种浏览器上进行JSFIDL操作,只是为了确保事情按照我的预期进行。为什么到处都没有记录?我不知道,可能没有多少人使用它。而且它似乎是一个新的财产。第二次谷歌搜索发现MediaError对象,例如:
const getMediaErrorMessage = error => Object.keys(Object.getPrototypeOf(error.currentTarget.error)).find(key => error.currentTarget.error[key] === error.currentTarget.error.code);