javascript - 如何检查音频是否未加载?

标签 javascript jquery html audio

我编写了一些音频抓取脚本来搜索 mp3 音频文件 url 链接,并将其 url 加载到我的 HTML audiosrc 中。但是,我发现一些 mp3 url 无法正常工作,因此 audio 无法执行 load(),因为音频文件在第一个中不可以使用地方。我查找了 audio\video html dom 引用,但没有找到任何有用的方法或属性,如果音频未正确加载,它们会返回一个值。

假设我有以下代码:

var url= $(data).find(".download_button a").attr('href');
$('source').attr("src", url);   
$('#mp3').get(0).load();
$('#mp3').get(0).play();

例如,如果网址是这样的:http://www.7inchpunk.com/wp-content/upload1/01LetsGetRidOfNewYork.mp3 。这是一个找不到的网站。我无法执行 if($('#mp3').get(0).load()) 因为 load() 没有返回值。那么如何检查音频文件是否已加载?

最佳答案

您可以 Hook 源对象的 onerror 事件:

var url = 'http://www.7inchpunk.com/wp-content/upload1/01LetsGetRidOfNewYork.mp3';

$('source').attr("src", url);   
$('#mp3').get(0).load();
$('#mp3').get(0).play();

$('source').on('error', function () {
    console.log('OOPS');
});

示例:http://jsfiddle.net/r9Lh78e2/

关于javascript - 如何检查音频是否未加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33554261/

相关文章:

c# - 如何查看一个字符串是否包含另一个带引号的字符串?

javascript - 当 CSS3 列溢出时重复 HTML 标题

javascript - 对 Angular Provider 的依赖注入(inject)

javascript - map 图 block 集的纬度和经度

JavaScript 数组 : problems with array declaration and access

javascript - jquery id选择改变类

jquery - 找出元素是否是另一个元素的后代的最佳方法

javascript - 防止 href ="#"链接更改 URL 哈希

javascript - D3 在 X 轴上放置时间而不是数组值

javascript - 从内容中删除逗号