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

时间:2025-04-28 07:16:14

/

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

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

  1. 首先 在data中随便定义一个变量tap
data () {  return {   tap: false  // 它是用来执行watch里面的代码  }}
  1. 然后再mounted中改变 tap的值
mounted () { this.$nextTick(() => {       = !    })}
  1. 监视watch tap
watch: {  tap () {  	 ()  // 每一次动态改变aduio的src后,都要load一次       = () => {         = ()        // 这个caculateTime() 只是为了把音频的的时间格式化      }  }}
  1. 这样就可以了!