优化BGMA连续播放与通关音量压低并强化节点缩放

This commit is contained in:
toshiocn
2026-10-23 14:25:35 +08:00
parent c13b850fb2
commit 90d83b3903
19 changed files with 65 additions and 53 deletions
+4 -1
View File
@@ -5,13 +5,14 @@ export function browserAudio(report){
setInnerAudioOption(){},
createInnerAudioContext(){
const player=new Audio();player.preload='auto';players.add(player);
let errorHandler=()=>{},playHandler=()=>{},generation=0;
let errorHandler=()=>{},playHandler=()=>{},endedHandler=()=>{},generation=0;
const error=reason=>{
if(disposed||reason?.name==='AbortError')return;
report('音效播放失败:'+(reason?.message||'请检查页面声音权限'));
errorHandler({errMsg:reason?.message||'浏览器音频加载失败'});
};
player.addEventListener('error',()=>error(player.error));
player.addEventListener('ended',()=>{if(!disposed)endedHandler();});
return {
set src(path){player.src=new URL('../'+path,location.href).href;},
set loop(value){player.loop=value;},
@@ -19,6 +20,8 @@ export function browserAudio(report){
set obeyMuteSwitch(value){},
onError(callback){errorHandler=callback;},
onPlay(callback){playHandler=callback;},
onEnded(callback){endedHandler=callback;},
offEnded(callback){if(endedHandler===callback)endedHandler=()=>{};},
stop(){generation++;player.pause();if(player.readyState)player.currentTime=0;},
play(){
const current=generation;