为了账号安全,请及时绑定邮箱和手机立即绑定

audio标签获取时间返回NaN

audio标签获取时间返回NaN

三国纷争 2018-10-11 15:31:20
需求:获取页面中多个audio时间并显示到对应div中曾实现手段:1、利用定时器延时,等待页面加载结束后去获取时间问题:部分div中返回NaN,原因可能是部分audio并未加载结束,而获取的时间并未被找到进行字符串处理后为NaN2、循环调用定时器,若时间未被取到,继续调用定时器去查找问题:页面加载速度过慢,用户体验差 var aud = document.getElementsByClassName('aud');        function getTime() {            setTimeout(function () {                for(var i=0;i<aud.length;i++){                    if(isNaN(aud[i].duration)){                        getTime();                    }                    else{                        $('#audio-'+(i+1)+' .audio-text').html(aud[i].duration.toString().replace('.', "'").slice(0,3) + '"')                    }                }            }, 10);        }    getTime();求一个在不损失大量性能前提下较优的方案,目前单纯加延时和反复查询的方法都不太适合
查看完整描述

1 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

我觉得应该用事件触发吧。

可以试试给<audio>标签绑canplaycanplaythrough或者durationchange的事件回调


查看完整回答
反对 回复 2018-11-27
  • 1 回答
  • 0 关注
  • 993 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号