请问获取H5 Audio标签的MP3播放长度duration,返回值为NaN?

<Audio id='ad'>
  <source src='1.mp3'></source>
  <source src='1.ogg'></source>
</Audio>
$('#ad').load();
var tl=$('#ad').get(0).duration;

代码差不多这样,我在换了source里的src属性之后,重新加载load()之后,得到的tl打印出来为NaN,这是怎么回事啊?

阅读 12.8k
3 个回答

加载音频资源是异步的,还没加载完成的音频资源,duration会返回NaN

var tl;
$('#ad').load(function(){
    tl=$('#ad').get(0).duration;
});

因为还没加载完音频,所以duration会返回NaN。
看一下audio的事件吧。
http://www.w3school.com.cn/ta...

$("#ad").on("canplay",function(){
    tl=$('#ad').get(0).duration;
})
新手上路,请多包涵

想请问一下这个问题最后是怎么解决的呢

推荐问题