const audioFils = { 第一轮: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fl26qrspvy79.mp3", 第二轮: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fehshrpe5ook.mp3", 第三轮: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fgbz3iimk7yy.mp3", 第四轮: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fjwf50tlxxbi.mp3", 第五轮: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fg63lqrslhm7.mp3", 决金箭轮: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fhjycwubbwil.mp3", 请蓝方射击: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fr0zpluiabph.mp3", 请红方射击: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fu169yerpwey.mp3", 中场休息: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblu6fug8faqrbtwd.mp3", 比赛结束: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblsdl717ilr0b3o0.mp3", 比赛开始: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbblsdl7qlkqgvthfr.mp3", 请开始射击: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbljrfx5guqt5oulk.mp3", 未上靶: "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbkxm60bul0khcoqq.mp3", "1环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbklufj59qmdo96ha.mp3", "2环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbklufogy49ousbv4.mp3", "3环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbklufl3hhijeasck.mp3", "4环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbklufo8vo7k6jxdz.mp3", "5环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbklkzq7lrbfpr6ij.mp3", "6环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbkll0fw7hbmmhxkl.mp3", "7环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbkll0fkirkanghmf.mp3", "8环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbkll0cly2noykieg.mp3", "9环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbkll0gsuumekhpkn.mp3", "10环": "https://api.shelingxingqiu.com/attachment/2025-07-14/dbbklgw2dk22ek7qha.mp3", }; class AudioManager { constructor() { this.audioMap = new Map(); Object.keys(audioFils).forEach((key) => { const audio = uni.createInnerAudioContext(); audio.src = audioFils[key]; audio.autoplay = false; // 监听加载状态 audio.onCanplay(() => { // console.log(`音频 ${key} 已加载完成`); }); audio.onError((res) => { console.log(`音频 ${key} 加载失败:`, res.errMsg); }); this.audioMap.set(key, audio); }); } // 播放指定音频 play(key) { const audio = this.audioMap.get(key); if (audio) audio.play(); } // 停止指定音频 stop(key) { const audio = this.audioMap.get(key); if (audio) audio.stop(); } // 销毁所有音频实例 destroyAll() { this.audioMap.forEach((audio) => { audio.destroy(); }); this.audioMap.clear(); } } // 导出单例 export default new AudioManager();