public void Recycle(List <AkBankRes> bankResList) { if (!IsInitialized) { IsInitialized = true; } else { triggerList.Recycle(false); var unloadFailList = bankAtomSet.UnloadAll(); if (unloadFailList.Count > 0) { //TODO:异常处理 } bankAtomSet.Recycle(); } triggerList.BindTarget(AKAudioEntry.WiseNotificationRoute.gameObject); AKBankAtom atom = null; foreach (AkBankRes bankData in bankResList) { bankAtomSet.Add(bankData, handlerAgent); List <int> list = atom.GetTriggerList(); for (int i = 0; i < list.Count; i++) { triggerList.Subscribe((AudioTriggerEventType)list[i], atom.LoadHandler); } list = atom.GetUnLoadTriggerList(); for (int i = 0; i < list.Count; i++) { triggerList.Subscribe((AudioTriggerEventType)list[i], atom.UnloadHandler); } } }
public AKAudioBankLoader() { handlerAgent = new BankLoadHandlerAgent(InternalLoadBnkHandler, InteranlUnloadBnkHandler); bankAtomSet = new AKBankAtomSet(handlerAgent); bankAtomSet.Add(AudioConfigSimulator.SimAKBankCfg(), handlerAgent); }