uni-app 大于十分钟的音频播放不完整

uni-app 大于十分钟的音频播放不完整

开发环境 版本号 项目创建方式
Mac 11.4 HBuilderX

操作步骤:

通过播放 http://hometree.oss-cn-shanghai.aliyuncs.com/backend/wecha/audio/108ziwo.mp3 这段音频,正常播放,不快进,在十分钟之后会在随机时段暂停

预期结果:

应完整播放完音频

实际结果:

在十分钟之后会在随机时段暂停

bug描述:

长音频提前暂停

  • 音频超过10分钟,通过背景音乐播放,在播放到十分钟之后,会随机时间结束,但音频并未播放完全

更多关于uni-app 大于十分钟的音频播放不完整的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 大于十分钟的音频播放不完整的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题通常与uni-app音频播放器的缓冲区限制有关。对于超过10分钟的长音频,系统可能因内存管理策略提前释放资源,导致播放中断。

解决方案:

  1. 使用uni.createInnerAudioContext()替代背景音频API

    const innerAudioContext = uni.createInnerAudioContext();
    innerAudioContext.src = 'your_audio_url';
    innerAudioContext.autoplay = true;
    // 监听错误事件
    innerAudioContext.onError((res) => {
      console.log('播放错误', res);
    });
    
  2. 设置关键参数

    innerAudioContext.obeyMuteSwitch = false; // 不受静音开关影响
    innerAudioContext.startTime = 0; // 确保从开始播放
    
  3. 添加错误恢复机制

    innerAudioContext.onEnded(() => {
      // 检查是否真正播放完毕
      if (innerAudioContext.duration - innerAudioContext.currentTime > 5) {
        // 异常中断,重新加载
        innerAudioContext.stop();
        innerAudioContext.play();
      }
    });
回到顶部