uni-app使用onCanplay获取音频时长duration为0解决办法

uni-app创建背景音乐播放,使用onCanplay()来获取音乐时长时,返回的duration为0要如何解决呢?

本篇介绍项目中通过调用onCanplay()获取不到duration给出解决办法。

一、通过定时器延迟时长来获取音频时长。

<script>
const innerAudioContext = uni.createInnerAudioContext();
export default {
data() {
return {
};
},
methods:{
getVTime(){
innerAudioContext.src = '音频地址'
innerAudioContext.onCanplay(()=>{
let intervalID = setInterval(() => {
if (innerAudioContext.duration !== 0) {
clearInterval(intervalID); // 清除定时器
//音频时长
console.log(innerAudioContext.duration)
}
}, 500);
})
}
}
}
</script>

代码解析:

    在onCanplay()方法中使用定时器,通过定时循环来获取音频时长。

六月初字帖坊小程序 你想要的字帖模板及工具,这里都有!