Vue-ondurationchange(监听歌曲是否已经加载完成)
问题:切换歌曲的时候歌曲时间有时候不会修改为正确的时间,那是因为歌曲还未加载完成,只有歌曲加载完成之后才能获取到歌曲的总时长
注意点: 在iOS中系统不会自动加载歌曲, 所以oncanplay不会自动执行
解决方案: 如何监听iOS中Audio的歌曲是否已经准备好了, 通过ondurationchange事件来监听
ondurationchange事件什么时候执行: 当歌曲加载完成之后执行, 因为只有歌曲加载完成之后才能获取到歌曲的总时长
watch
watch:{
currentIndex () {
//歌曲加载完成后才会执行
this.$refs.audio.ondurationchange = () => {
//获得歌曲时间
this.totalTime = this.$refs.audio.duration
//如果正在播放则切换到下一首继续播放 暂停则下一首暂停
if (this.isPlaying) {
this.$refs.audio.play()
} else {
this.$refs.audio.pause()
}
}
}
}