页面中存在video组件,页面返回时会将正在播放的InnerAudio和backgroundAudioManage音频中断
页面中存在video组件,页面返回时会将正在播放的InnerAudio和backgroundAudioManage音频中断
类别 | 信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | windows 10 |
HBuilderX类型 | Alpha |
HBuilderX版本 | 4.61 |
手机系统 | iOS |
手机系统版本 | iOS 18 |
手机厂商 | 苹果 |
手机机型 | iphone 12 mini |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码: 附件上传了示例代码,辛苦大佬验证一下
操作步骤:
当应用有正在播放的InnerAudio和backgroundAudioManage音频,跳转了新页面,新页面中有video组件,页面返回时会将正在播放的音频中断,也没有进入InnerAudio和backgroundAudioManage任何监听事件,onTimeUpdate事件还会继续在执行,但是声音没了
视频播放时没有中断InnerAudio和backgroundAudioManage,在安卓端会自动中断
预期结果: 当页面返回时不中断正在播放的InnerAudio和backgroundAudioManage音频
实际结果: 当页面返回时中断正在播放的InnerAudio和backgroundAudioManage音频,并且没有进入InnerAudio和backgroundAudioManage任何监听事件
bug描述:
当应用有正在播放的InnerAudio和backgroundAudioManage音频,跳转了新页面,新页面中有video组件,页面返回时会将正在播放的音频中断,也没有进入InnerAudio和backgroundAudioManage任何监听事件,onTimeUpdate事件还会继续在执行,但是声音没了
视频播放时没有中断InnerAudio和backgroundAudioManage,在安卓端会自动中断
111111111
大佬关注一下
是只有iOS平台有问题还是Android和iOS都有这个问题?
问题一:当页面返回时中断正在播放的InnerAudio和backgroundAudioManage音频,只有IOS有问题, 问题二:当video播放时不会中断正在播放的InnerAudio和backgroundAudioManage音频,安卓、IOS、微信小程序都有这个问题,目前我是通过video的play事件暂停了正在播放的InnerAudio和backgroundAudioManage音频播放
好的,后面我试下
你好,我IOS打自定义基座报这个错是要怎么安装这个DCloudUniappRuntime? uni_modules/uni-createInnerAudioContext/utssdk/app-ios/src/UniAudioPlayer.swift:3:8: error: no such module ‘DCloudUniappRuntime’ uni_modules/uni-getBackgroundAudioManager/utssdk/app-ios/src/UniBackgroundAudioManager.swift:3:8: error: no such module ‘DCloudUniappRuntime’
回复 p***@163.com: 临时解决方案:把插件源码中的import DCloudUniappRuntime手动修改为import DCloudUTSFoundation
这个问题是iOS平台上video组件与音频播放的兼容性问题。根据你的描述,我分析如下:
-
问题核心:iOS系统中video组件会抢占音频通道,导致返回页面时InnerAudio和backgroundAudioManage被静音但未真正停止。
-
解决方案建议:
- 在页面onHide生命周期中暂停video播放
- 在onShow中恢复audio播放状态
- 代码修改示例:
// 在video页面中添加
onHide() {
this.videoContext.pause()
},
onShow() {
// 恢复之前的音频播放状态
if(this.audioPlaying) {
this.audioContext.play()
}
}