在 uni-app 鸿蒙 Next 应用中,使用 uni.createInnerAudioContext 播放短音(如点击音效)时,会打断后台正在播放的音乐,且音效播放完成后,后台音乐无法自动恢复播放,影响用户体验。当前已设置 sessionCategory: 'ambient',但问题依旧存在,需要如何优化音频并发与焦点策略?
const playClickSound = () => {
try {
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = '/static/sounds/click.mp3';
innerAudioContext.volume = 0.5;
// #ifdef APP-HARMONY
innerAudioContext.sessionCategory = 'ambient';
// #endif
innerAudioContext.play();
innerAudioContext.onEnded(() => {
innerAudioContext.destroy();
});
innerAudioContext.onError(() => {
innerAudioContext.destroy();
});
} catch (e) {
console.log('音效播放失败', e);
}
};
2 个回复
Ask小助手
根据知识库 audio-context 中的说明,
innerAudioContext对象的sessionCategory属性用于设置音频播放模式:"ambient""soloAmbient""playback"你的代码中已设置为
'ambient',该模式理论上不会中止其他应用(如后台音乐)的声音播放。此属性在 App 平台(3.3.7+)支持,包括鸿蒙平台(HBuilderX 4.23+)。关于你提到的"并发、压低、暂停音频焦点策略",知识库中暂未找到相关详细配置说明。如果设置为
'ambient'后仍然打断后台音乐且无法自动恢复,建议:1***@qq.com (作者)
照片是鸿蒙审核报告
要回复问题请先登录或注册
公告
更多>相关问题