- createInnerAudioContext 正常执行play播放,离开页面已做销毁操作
- navigateTo进入其他页面时,播放仍在继续
- 发布:2026-02-02 17:22
- 更新:2026-02-09 11:03
- 阅读:140
产品分类: uniapp/小程序/阿里
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: window10
第三方开发者工具版本号: 淘宝开发工具3.0.9
基础库版本号: Vue 3.5.25
项目创建方式: CLI
CLI版本号: 3.0.0-4080420251103001
操作步骤:
预期结果:
createInnerAudioContext 正常销毁
createInnerAudioContext 正常销毁
实际结果:
createInnerAudioContext ios上不销毁
createInnerAudioContext ios上不销毁
bug描述:
createInnerAudioContext播放时,页面内暂停,定时销毁均无问题
但navigateTo跳转页面时, onHide, onUnload里销毁已执行,安卓端正常,ios端进入下个页面仍然在播放
淘宝小程序原生开发已测试无此问题,请uniapp团队排查一下
4 个回复
Ask小助手
作为 DCloud 官方人员,我对这个 bug 反馈进行如下评审:
一、反馈内容完整性评估
二、Bug 是否成立
根据知识库内容:
uni.createInnerAudioContext()在 App 平台(iOS/Android)均支持,且文档明确说明应调用.destroy()方法销毁实例。.destroy()无效的已知问题。.destroy(),也无法排除是否使用了plus.audio或其他原生 API 混用。三、建议用户补充的内容
请用户补充以下信息,以便我们进一步定位和复现问题:
四、临时建议(基于知识库)
在用户提供更多信息前,建议尝试以下方式规避:
onUnload中强制调用:autoplay: true,改为用户触发播放;plus.audio.createPlayer(),该 API 生命周期不受页面控制。五、后续处理建议
请用户补充上述信息后,我们将:
补充信息模板(建议用户直接复制填写):
8***@qq.com (作者)
以上是代码片段。
环境:淘宝小程序
ios 18.1.1
页面类型:vue
未使用HBuilder, uni cli开发
纯小程序,uni api,无plus 或原生API
8***@qq.com (作者)
问题补充: 当前页面正常播放停止销毁没问题, 当使用navigateTo打开页面时,音频仍在播放(已处理销毁逻辑),但当前页面播放时返回到上一页,能够正常停止,
等回复
DCloud_UNI_LXH
这里调用的都是小程序原生的 api,原生小程序是不是也有这个问题?
2026-02-03 18:01
8***@qq.com (作者)
回复 DCloud_UNI_LXH: 使用淘宝原生小程序试过,无此问题
2026-02-03 19:35
DCloud_UNI_LXH
回复 8***@qq.com: 在调用
stopAndDestroyAudio时,是否报错?或者执行到stop逻辑了吗?2026-02-04 11:32
8***@qq.com (作者)
回复 DCloud_UNI_LXH: stopAndDestroyAudio 正常执行stop destory,未报错
分别启uniapp和原生开发最小demo测试,仅uniapp存在问题
页面跳转触发了onHide,是否是因为onHide钩子里销毁运行时上下文,导致native层未触发销毁
2026-02-04 11:41
8***@qq.com (作者)
回复 8***@qq.com: 在navigateTo时主动停止都是有效的,就是在页面级钩子(onHide)里处理无效,应该是时序问题,请提供解决方案
2026-02-04 13:54
DCloud_UNI_LXH
回复 8***@qq.com: 在 navigateTo 的 success 回调中呢?
2026-02-05 15:31
8***@qq.com (作者)
回复 DCloud_UNI_LXH: 不行,现象上看是丢失了上下文,请官方验证问题是否存在,或者仅是某些版本有问题
2026-02-06 11:22
DCloud_UNI_LXH
回复 8***@qq.com: 但像你说的,安卓正常,ios 不异常,看起来和框架没有问题,我测试下吧
2026-02-06 16:49
DCloud_UNI_LXH
我使用 vue3 运行到支付宝小程序模拟器上,然后真机调试到 ios 设备。使用
onPlay、onStop来监听了 innerAudio 的生命周期。在onHide生命周期中调用 innerAudio stop。可以看到已经触发了 innerAuduio 的onStop2026-02-06 17:56
8***@qq.com (作者)
回复 DCloud_UNI_LXH: 你使用的vue和@dcloudio/uni-app版本号多少,我这边最小级demo调试确认ios在onHide 里没有onStop回调,android正常
2026-02-09 10:37
8***@qq.com (作者)
回复 DCloud_UNI_LXH: 下条评论附件中上传了最小级demo
2026-02-09 11:04
8***@qq.com (作者)
附件中是基于uni-preset-vue 的demo,请调试
DCloud_UNI_LXH
我使用你提供的 demo,然后真机调试运行到 ios 26 的手机上,点击
开始播放音乐播放,点击跳转跳转页面并且音乐停止播放2026-02-09 15:48
要回复问题请先登录或注册
公告
更多>相关问题