首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >音频onError参数

音频onError参数
EN

Stack Overflow用户
提问于 2012-07-30 05:29:04
回答 2查看 4K关注 0票数 5

我正在创建一个基于HTML5的小型网站。在某种程度上,我想播放一个声音。我是这样播放声音的:

代码语言:javascript
复制
    sound = new Audio(url);
    sound.addEventListener("error", function(e) { 
               console.log("Logging playback error: " + e); });
    sound.load();
    sound.play();

当出现错误时,我找不到e中的内容。不幸的是,这个错误只发生在iPad上,所以我不能使用Firebug来调试它。在文档中我找不到参数的描述。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-31 00:30:44

我可能找到了那个error消息对象。错误代码位于sound.error.codee.currentTarget.error.code属性中,并且可以包含以下4位数字之一:

代码语言:javascript
复制
MEDIA_ERR_ABORTED=1
MEDIA_ERR_NETWORK=2
MEDIA_ERR_DECODE=3
MEDIA_ERR_SRC_NOT_SUPPORTED=4

examined it @jsfiddle

票数 7
EN

Stack Overflow用户

发布于 2019-11-10 01:54:21

基于@Stano answer,我创建了一个函数,它将输出错误消息,而不是代码编号。它使用ES6的Object.keys()方法,但在撰写本文时,它在所有主要浏览器中都有完全支持(2019年11月)。

代码语言:javascript
复制
const getMediaErrorMessage = error => Object.keys(Object.getPrototypeOf(error.currentTarget.error)).find(key => error.currentTarget.error[key] === error.currentTarget.error.code);

这是一个呈现函数用法的代码片段:

代码语言:javascript
复制
const getMediaErrorMessage = error => Object.keys(Object.getPrototypeOf(error.currentTarget.error)).find(key => error.currentTarget.error[key] === error.currentTarget.error.code);

const url = 'xxx';  // using wrong url, to get an error
const sound = new Audio(url);
sound.addEventListener('error', e => console.log(`Media error occurred: ${getMediaErrorMessage(e)}`));
sound.load();
sound.play();

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11713114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档