页面中存在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,在安卓端会自动中断


10 回复

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组件与音频播放的兼容性问题。根据你的描述,我分析如下:

  1. 问题核心:iOS系统中video组件会抢占音频通道,导致返回页面时InnerAudio和backgroundAudioManage被静音但未真正停止。

  2. 解决方案建议:

  • 在页面onHide生命周期中暂停video播放
  • 在onShow中恢复audio播放状态
  1. 代码修改示例:
// 在video页面中添加
onHide() {
  this.videoContext.pause()
},
onShow() {
  // 恢复之前的音频播放状态
  if(this.audioPlaying) {
    this.audioContext.play()
  }
}
回到顶部