Example #1
0
        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;
            }
        }
Example #2
0
 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;
 }
Example #3
0
        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);
                    }
                });
            }
        }
Example #4
0
        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);
            }
        }
Example #5
0
 private void LoadingState(AudioConfigData audioData)
 {
     Load(audioData);
 }