private void ChangeState(string audioName, AudioState state) { AudioItem audioItem = GetAudioItemByName(audioName); AudioConfigData audioData = audioConfig.GetDataByKey(audioName); if (audioData == null || audioItem == null) { return; } audioItem.State = state; switch (state) { case AudioState.Loading: LoadingState(audioData); break; case AudioState.Play: PlayState(audioName, audioItem); break; case AudioState.Pause: PauseState(audioItem); break; case AudioState.Stop: StopState(audioName, audioItem); break; case AudioState.Error: ErrorState(audioName); break; } }
private void SyncCoreSettings(AudioConfigData configSetting) { AudioInfluence.IsForbidden = configSetting.isForbiden; AudioInfluence.AudioLoadTypeWhenStarup = configSetting.audioLoadTypeWhenStarup; AudioPluginSettingAgent.SetCreatePacker(configSetting.usePicker); AudioPluginSettingAgent.DeveloperWwiseInstallationPath = configSetting.wiseInstallationPath; AudioPluginSettingAgent.DeveloperWwiseProjectPath = configSetting.wiseProjectPath; }
private void Load(AudioConfigData audioData) { LoadType loadType = (LoadType)audioData.LandType; if (loadType == LoadType.Resources) { AudioClip audioClip = ResoucesMgr.Instance.Load <AudioClip>(audioData.ResourcesPath, false); if (audioClip != null) { LoadFinish(audioData.Name, audioClip); } else { Debug.LogError(GetType() + "/Load()/ load audio error! audioName:" + audioData.Name); ChangeState(audioData.Name, AudioState.Error); } } else if (loadType == LoadType.AssetBundle) { AbParam abParam = new AbParam(); abParam.SceneName = audioData.SceneName; abParam.AbName = audioData.AssetBundlePath; abParam.AssetName = audioData.AssetName; AssetManager.Instance.LoadAsset(abParam, (error, asset) => { if (string.IsNullOrEmpty(error)) { LoadFinish(audioData.Name, asset as AudioClip); } else { Debug.LogError(GetType() + "/Load()/ load audio error! audioName:" + audioData.Name); ChangeState(audioData.Name, AudioState.Error); } }); } }
private void PlayAudio(string audioName, Transform target, bool isLoop, DelAudioCallback audioCallback) { AudioConfigData audioData = audioConfig.GetDataByKey(audioName); if (audioData == null) { Debug.LogError(GetType() + "/PlayAudio()/ play audio error! audioName:" + audioName); return; } if (dicAllAudios.ContainsKey(audioName)) { AudioItem audioItem = GetAudioItemByName(audioName); if (audioItem != null && audioItem.State != AudioState.Loading && audioItem.State != AudioState.Error) { audioItem.AudioName = audioName; audioItem.OnAudioCallback = audioCallback; audioItem.target = target; ChangeState(audioName, AudioState.Play); } } else { GameObject item = new GameObject(audioName); AudioSource audioSource = item.AddComponent <AudioSource>(); audioSource.playOnAwake = false; audioSource.loop = isLoop; AudioItem audioItem = item.AddComponent <AudioItem>(); audioItem.AudioName = audioName; audioItem.OnAudioCallback = audioCallback; audioItem.target = target; audioItem.Audio = audioSource; dicAllAudios.Add(audioName, audioItem); ChangeState(audioName, AudioState.Loading); } }
private void LoadingState(AudioConfigData audioData) { Load(audioData); }