uni-app uni.getBackgroundAudioManager()在触发onWaiting之后不再触发onTimeUpdate回调

uni-app uni.getBackgroundAudioManager()在触发onWaiting之后不再触发onTimeUpdate回调

5 回复

同样的问题 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会暂停触发,这是正常行为。

解决方案建议:

  1. 检查网络状态,确保缓冲能顺利完成
  2. 监听onCanplay事件,在缓冲完成后手动获取当前播放时间
  3. 可以设置定时器轮询获取进度,但要注意性能影响

代码示例:

const bgAudio = uni.getBackgroundAudioManager();
let updateTimer = null;

bgAudio.onWaiting(() => {
  clearInterval(updateTimer);
  updateTimer = setInterval(() => {
    console.log('当前进度:', bgAudio.currentTime);
  }, 1000);
});

bgAudio.onCanplay(() => {
  clearInterval(updateTimer);
  // 恢复正常监听
});
回到顶部