uni-app uni.getBackgroundAudioManager()在触发onWaiting之后不再触发onTimeUpdate回调
uni-app uni.getBackgroundAudioManager()在触发onWaiting之后不再触发onTimeUpdate回调
同样的问题 3.3还没有解决
更多关于uni-app uni.getBackgroundAudioManager()在触发onWaiting之后不再触发onTimeUpdate回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html
用一个折中的办法解决了
在onWaitting回调中执行一下play方法
// #ifdef APP-PLUS
// android 有bug 回调onwaitting之后会卡住停止调用onTimeUpdate 暂时用这个方法解决一下
setTimeout(()=>{
this.audioCtx.play()
},1000)
// #endif
请提供简单、可稳定复现、能直接运行的示例(上传附件),方便我们快速排查问题哦。
【bug优先处理规则】https://ask.dcloud.net.cn/article/38139
3.2.16.20211122 uni-app uni.getBackgroundAudioManager()在触发onWaiting之后不再触发onTimeUpdate回调 3.2.16.20211122也有这个问题
这是一个典型的音频播放器状态管理问题。当onWaiting
触发后,音频进入缓冲状态,此时onTimeUpdate
会暂停触发,这是正常行为。
解决方案建议:
- 检查网络状态,确保缓冲能顺利完成
- 监听
onCanplay
事件,在缓冲完成后手动获取当前播放时间 - 可以设置定时器轮询获取进度,但要注意性能影响
代码示例:
const bgAudio = uni.getBackgroundAudioManager();
let updateTimer = null;
bgAudio.onWaiting(() => {
clearInterval(updateTimer);
updateTimer = setInterval(() => {
console.log('当前进度:', bgAudio.currentTime);
}, 1000);
});
bgAudio.onCanplay(() => {
clearInterval(updateTimer);
// 恢复正常监听
});