2015-11-05 65 views
1

我写了一些音频抓取脚本,用于搜索mp3音频文件的url链接,并将其网址加载到我的HTML audiosrc中。然而,我发现一些MP3网址无法正常工作,因此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(); 

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

+0

你尝试挂钩到'$(源)''onerror'事件? –

回答

1

您可以挂接到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/