我在进入页面时调用了一下音频初始化函数如下,在给audio实例的src属性赋值后,想要在onCanplay音频准备就绪回调中,将音频总时长赋值给响应式数据,在微信开发者工具上下面代码是完全没问题的,但是真机调试在回调中拿到audioCtx.duration为0
// 初始化音频监听
const initAudioListener = () => {
uni.showLoading({
title: '加载中...'
})
audioCtx.src = currentMusic.value.src
audioCtx.volume = volume.value
// 音频准备就绪事件
audioCtx.onCanplay((e) => {
uni.hideLoading()
currentTime.value = audioCtx.currentTime
duration.value = audioCtx.duration
})
}
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
console.error('audioContext not initialized');
return;
}
if (this.data.isPlaying) {
audioContext.pause();
this.setData({ isPlaying: false });
} else {
audioContext.seek(0);
audioContext.play();
this.setData({ isPlaying: true });
}
} catch (error) {
console.error('播放音频失败:', error);
wx.showToast({
title: '播放失败',
icon: 'none'
});
}
},
goBack() {
wx.navigateBack();
}
});
在onTimeUpdate 方法里面可以准确获取时长