text: const cacheAudios = {};
  const funs = {
      getFullUrl(v){
          if(!/^https?:\/\//.test(v)){
              const cdnPath = GameGlobal.manager.managerConfig.AUDIO_PREFIX;
              v = cdnPath.replace(/\/$/,'') +'/' +v.replace(/^\//,'').replace(/^Assets\//,'');
          }
          return encodeURI(v);
      }
  };
  export default {
      WXPreLoadShortAudio(str) {
          str.split(',').forEach(v=>{
              if(!cacheAudios[v]){
                  const innerAudioContext = wx.createInnerAudioContext();
                  innerAudioContext.src= funs.getFullUrl(v);
                  cacheAudios[v] = {
                      context:innerAudioContext
                  }
              }
          })
      },
      WXStopOthersAndPlay(str,loop,volume){
          if(!cacheAudios[str]){
              const innerAudioContext = wx.createInnerAudioContext();
              innerAudioContext.src= funs.getFullUrl(str);
              innerAudioContext.loop = Boolean(loop);
              cacheAudios[str] = {
                  context:innerAudioContext,
                  loop,
                  volume,
                  isPlaying:false
              }
              innerAudioContext.onEnded = function(){
                  cacheAudios[str].isPlaying = false;
              }
          }
  
          Object.keys(cacheAudios).forEach(v=>{
              if(cacheAudios[v].isPlaying && v!==str){
                  cacheAudios[v].isPlaying = false;
                  cacheAudios[v].context.stop();
              }
          })
  
          const audio = cacheAudios[str];
          if(audio.loop !=Boolean(loop)){
              audio.loop = Boolean(loop);
              audio.context.loop = Boolean(loop);
          }
          if(audio.volume !=volume){
              audio.volume = volume;
              audio.context.volume = volume;
          }
          if(!audio.isPlaying){
              audio.context.play();
              audio.context.isPlaying = true;
          }
      },
      WXShortAudioPlayerStop(str){
          let audio = cacheAudios[str];
          if(audio){
              if(audio.isPlaying){
                  audio.isPlaying =false;
                  audio.context.stop();
              }
          }
      },
      WXShortAudioPlayerDestroy(str){
          let audio = cacheAudios[str];
          if(audio){
              audio.context.destroy();
              delete cacheAudios[str];
          }
      }
  
  }
  
  const mod = {
      recover(){
          Object.keys(cacheAudios).forEach(v=>{
              const audio = cacheAudios[key];
              if(audio.context.paused && audio.isPlaying){
                  if(audio.loop){
                      audio.play();
                  }else{
                      audio.isPlaying = false;
                  }
              }
          })
      },
      init(){
          wx.onShow(mod.recover);
          wx.onAudioInterruptionEnd(mod.recover);
      }
  };
  
  mod.init();
  
  