8***@qq.com
8***@qq.com
  • 发布:2026-02-02 17:22
  • 更新:2026-02-02 17:25
  • 阅读:15

【报Bug】createInnerAudioContext播放时跳转页面未停止播放

分类:uni-app

产品分类: uniapp/小程序/阿里

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: window10

第三方开发者工具版本号: 淘宝开发工具3.0.9

基础库版本号: Vue 3.5.25

项目创建方式: CLI

CLI版本号: 3.0.0-4080420251103001

操作步骤:
  1. createInnerAudioContext 正常执行play播放,离开页面已做销毁操作
  2. navigateTo进入其他页面时,播放仍在继续

预期结果:

createInnerAudioContext 正常销毁

实际结果:

createInnerAudioContext ios上不销毁

bug描述:

createInnerAudioContext播放时,页面内暂停,定时销毁均无问题

但navigateTo跳转页面时, onHide, onUnload里销毁已执行,安卓端正常,ios端进入下个页面仍然在播放

淘宝小程序原生开发已测试无此问题,请uniapp团队排查一下

2026-02-02 17:22 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为 DCloud 官方人员,我对这个 bug 反馈进行如下评审:


一、反馈内容完整性评估

检查项 状态 说明
BUG 标题 简洁明了,指出问题核心
BUG 描述 ⚠️ 描述基本清晰,但缺少关键信息:<br>- 未说明使用的是 App 平台(vue/nvue) 还是 小程序平台<br>- 未说明是否使用 自定义基座云打包<br>- 未说明是否使用 plus API纯 uni API
代码示例 完全缺失,官方无法直接复现问题
复现步骤 ⚠️ 步骤描述过于简略,未提供跳转页面的生命周期代码(如 onHide/onUnload 中如何销毁)
预期结果 合理,符合 API 设计预期
实际结果 明确指出 iOS 端未销毁,安卓正常
分类信息 ⚠️ 提供了 HBuilderX 版本(但未说明是 alpha 还是正式版),未提供:<br>- iOS 系统版本<br>- uni-app 项目类型(vue2/vue3/nvue)<br>- 是否使用 App 平台或小程序平台

二、Bug 是否成立

根据知识库内容:

  • uni.createInnerAudioContext() 在 App 平台(iOS/Android)均支持,且文档明确说明应调用 .destroy() 方法销毁实例。
  • ✅ 文档中未提及 iOS 平台存在 .destroy() 无效的已知问题。
  • ⚠️ 但用户未提供代码,无法确认是否正确调用了 .destroy(),也无法排除是否使用了 plus.audio 或其他原生 API 混用。

结论:该 bug 可能成立,但需用户补充代码和平台细节后才能确认。


三、建议用户补充的内容

请用户补充以下信息,以便我们进一步定位和复现问题:

  1. 最小可复现代码片段(包括 createInnerAudioContext 的初始化、播放、销毁逻辑);
  2. 页面跳转代码(如 uni.navigateTo 的调用方式);
  3. onHide 和 onUnload 生命周期中的销毁代码
  4. 平台信息
    • iOS 系统版本;
    • 是否使用自定义基座;
    • HBuilderX 是否为最新版(当前正式版为 4.87);
  5. 是否使用 nvue 页面(nvue 页面生命周期与 vue 页面不同);
  6. 是否混用 plus.audio 或其他原生 API

四、临时建议(基于知识库)

在用户提供更多信息前,建议尝试以下方式规避:

  • onUnload 中强制调用:
    if (this.innerAudioContext) {  
    this.innerAudioContext.stop();  
    this.innerAudioContext.destroy();  
    this.innerAudioContext = null;  
    }  
  • 避免在 iOS 端使用 autoplay: true,改为用户触发播放;
  • 检查是否使用了 plus.audio.createPlayer(),该 API 生命周期不受页面控制。

五、后续处理建议

请用户补充上述信息后,我们将:

  • 在 iOS 真机环境下复现;
  • 如确认 bug,将提交至 ISSUE 系统 并安排修复;
  • 如为用户使用方式问题,将提供正确使用示例。

补充信息模板(建议用户直接复制填写):

- HBuilderX 版本:4.87(正式版/alpha?)  
- 平台:App(iOS/Android)  
- iOS 系统版本:如 iOS 16.5  
- 页面类型:vue / nvue  
- 是否使用自定义基座:是 / 否  
- 最小复现代码:  
  ```js  
  // 初始化  
  const innerAudioContext = uni.createInnerAudioContext();  
  innerAudioContext.src = 'xxx.mp3';  
  innerAudioContext.play();  

  // 销毁  
  onUnload() {  
    innerAudioContext.destroy();  
  }  


---  

如用户补充信息后仍无法解决,我们将优先安排 iOS 端工程师介入排查。
内容为 AI 生成,仅供参考

要回复问题请先登录注册