在vue中使用audio标签时,在页面渲染时,获取的音频的duration为NaN

https://www.tomhuwd.com/core-content-3908.html

想要在页面初始化渲染时,获取音频的总的时长

想要做一个音乐播放效果,可是我动态改变audio的src后,在mounted里面获取autio的duration一直为NaN,结果我在updated 中获取duration,就可以得到正确的值,但是,我需要的效果时,已进入音乐播放的内页,时间就需要显示,结果,我做了下面的方法

  1. 首先 在data中随便定义一个变量tap
data () {  return {   tap: false  // 它是用来执行watch里面的代码  }}
  1. 然后再mounted中改变 tap的值
mounted () { this.$nextTick(() => {      this.tag = !this.tag    })}
  1. 监视watch tap
watch: {  tap () {  	 this.musicLabel.load()  // 每一次动态改变aduio的src后,都要load一次      this.musicLabel.oncanplay = () => {        this.currentMusicTime = this.caculateTime(this.musicLabel.duration)        // 这个caculateTime() 只是为了把音频的的时间格式化      }  }}
  1. 这样就可以了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值