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); } } }
private void InternalLoadBnkHandler(AKBankAtom atom) { if (atom.InternalAsyncLoad) { TryLoadBnkAsync(atom.GetName()); } else { TryLoadBnk(atom.GetName()); } }
internal bool Add(AkBankRes bankData, AKAudioBankLoader.BankLoadHandlerAgent loadHandlers) { AKBankAtom atom; string bankName = bankData.Name; if (bankAtomContenter.TryGetValue(bankName, out atom)) { return(false); } atom = new AKBankAtom(bankData, loadHandlers); bankAtomContenter.Add(bankName, atom); // bankFinishLoadingIdList.Add(bankName); return(true); }
private void InteranlUnloadBnkHandler(AKBankAtom atom) { TryUnloadBnk(atom.GetName()); }