在vue中audio标签借助refs时候获取duration返回NaN

最近进行音乐网站开发,遇到了想借用audio的duration来获取歌曲总时长,但是返回来一直是NAN,查询了半天也没有出结果。

然后我自己观察到,只有我点击过快时候出现了NAN,个人猜测可能是因为获取歌曲时候,进度条没有加载完,也就是说在歌曲还没加载完,我们就去获取总时长

奈何本人技术不好,最后想到定时器,设置 两秒时间,这样就可拿到数据了

 setTimeout(() => {
                console.log(this.$refs.audio.duration)
            }, 2000);

以上方法也能获取,今天询问了一下朋友,终于找到正确的方法了。

拿到NAN是因为音乐未加载完成,这时候需要在audio标签添加

@canplay="canplay"

这样我们在下面canplay(){

//此处获取音乐总时长

}

前面

<audio   :src="musicdetail.play_url" @canplay="canplaysong" autoplay="true"></audio>

methods里面

canplaysong(){
            let total=parseInt(this.$refs.audio.duration)
                this.musictotaltimemode=total
                let minute=total % 60
                let seconds=(total-minute)/60
                this.musictotaltime=seconds+':'+minute
        },

这样就不会出现NAN了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值