请问获取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.6k
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;
})
新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题