uni-app uni.getBackgroundAudioManager()音频播放器在切换 src后无法播放

uni-app uni.getBackgroundAudioManager()音频播放器在切换 src后无法播放

开发环境 版本号 项目创建方式
PC开发环境 Windows
PC开发环境版本号 win11,win10
HBuilderX 正式 HBuilderX
HBuilderX版本号 4.85
手机系统 HarmonyOS NEXT
手机系统版本号 HarmonyOS 5.1.0
手机厂商 华为
手机机型 nova 12
页面类型 vue
vue版本 vue3
打包方式 云端

示例代码:

const bgAudioManager = uni.getBackgroundAudioManager();  
bgAudioManager.title = '致爱丽丝';  
bgAudioManager.singer = '暂无';  
bgAudioManager.coverImgUrl = 'https://qiniu-web-assets.dcloud.net.cn/unidoc/zh/music-a.png';  
bgAudioManager.src = 'https://web-ext-storage.dcloud.net.cn/uni-app/ForElise.mp3';  
setTimeout(() => {  
bgAudioManager.src = "其他的播放源"  
this.player.play()  
}, 5000);

操作步骤:

uni.getBackgroundAudioManager()音频播放器,在切换 src 后无法播放

预期结果:

在切换 src 后正常播放

实际结果:

在切换 src 后无法播放

bug描述:

uni.getBackgroundAudioManager无法切换src播放源


更多关于uni-app uni.getBackgroundAudioManager()音频播放器在切换 src后无法播放的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app uni.getBackgroundAudioManager()音频播放器在切换 src后无法播放的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个已知的uni-app背景音频管理器在部分华为设备上的兼容性问题。当动态修改src属性时,音频管理器状态可能未正确更新。

建议采用以下解决方案:

  1. 重新创建实例:每次切换音频源时,先调用bgAudioManager.stop()停止当前播放,然后重新获取新的音频管理器实例:
// 停止并销毁当前实例
bgAudioManager.stop();
// 重新获取实例
const newBgAudioManager = uni.getBackgroundAudioManager();
newBgAudioManager.title = '新标题';
newBgAudioManager.src = '新的音频源';
  1. 添加状态监听:确保在音频源切换后正确监听canplay事件:
bgAudioManager.onCanplay(() => {
    bgAudioManager.play();
});
  1. 使用暂停重置:在切换源前先执行暂停操作:
bgAudioManager.pause();
bgAudioManager.src = "新的音频源";
setTimeout(() => {
    bgAudioManager.play();
}, 100);
回到顶部