Example #1
0
 private void StopState(string audioName, AudioItem audioItem)
 {
     audioItem.Stop();
     if (dicAllAudios.ContainsKey(audioName))
     {
         dicAllAudios.Remove(audioName);
     }
 }
Example #2
0
 private void PlayState(string audioName, AudioItem audioItem)
 {
     audioItem.Play(Mute, volume);
     if (!dicAllAudios.ContainsKey(audioName))
     {
         dicAllAudios.Add(audioName, audioItem);
     }
 }
Example #3
0
        /// <summary>设置循环播放</summary>
        public void SetLoop(string audioName, bool isLoop)
        {
            AudioItem audioItem = GetAudioItemByName(audioName);

            if (audioItem != null)
            {
                audioItem.Audio.loop = isLoop;
            }
        }
Example #4
0
        /// <summary>设置播放进度(0-1)</summary>
        public void SetProgress(string audioName, float progress)
        {
            AudioItem audioItem = GetAudioItemByName(audioName);

            if (audioItem != null)
            {
                audioItem.ChangeProgress(progress);
            }
        }
Example #5
0
        /// <summary>获取声音时间长度(单位:秒)</summary>
        public float GetTimeByName(string audioName)
        {
            AudioItem audioItem = GetAudioItemByName(audioName);

            if (audioItem == null)
            {
                return(0);
            }
            return(audioItem.Time);
        }
Example #6
0
        /// <summary>获取声音播放进度(取值范围:0-1)</summary>
        public float GetProgressByName(string audioName)
        {
            AudioItem audioItem = GetAudioItemByName(audioName);

            if (audioItem == null)
            {
                return(0);
            }
            return(audioItem.GetPlayProgress());
        }
Example #7
0
        /// <summary>获取声音状态</summary>
        public AudioState GetAudioStateByName(string audioName)
        {
            AudioItem audioItem = GetAudioItemByName(audioName);

            if (audioItem == null)
            {
                return(AudioState.Error);
            }
            return(audioItem.State);
        }
Example #8
0
 private void SetVolume()
 {
     foreach (string audioName in dicAllAudios.Keys)
     {
         AudioItem audioItem = dicAllAudios[audioName];
         if (audioItem != null)
         {
             audioItem.Audio.volume = Volume;
         }
     }
 }
Example #9
0
 private void MuteToggle()
 {
     foreach (string audioName in dicAllAudios.Keys)
     {
         AudioItem audioItem = dicAllAudios[audioName];
         if (audioItem != null)
         {
             audioItem.Audio.mute = Mute;
         }
     }
 }
Example #10
0
 /// <summary>继续播放声音(从暂停状态进度继续播放)</summary>
 public void FurtherAudioPlayback(params string[] audioNames)
 {
     for (int i = 0; i < audioNames.Length; i++)
     {
         string    audioName = audioNames[i];
         AudioItem audioItem = GetAudioItemByName(audioName);
         if (audioItem != null)
         {
             audioItem.FurtherAudioPlayback();
         }
     }
 }
Example #11
0
 /// <summary>重新播放声音(进度从0开始)</summary>
 public void ReplayAudios(params string[] audioNames)
 {
     for (int i = 0; i < audioNames.Length; i++)
     {
         string    audioName = audioNames[i];
         AudioItem audioItem = GetAudioItemByName(audioName);
         if (audioItem != null)
         {
             audioItem.Replay();
         }
     }
 }
Example #12
0
        private void LoadFinish(string audioName, AudioClip audioClip)
        {
            AudioItem audioItem = GetAudioItemByName(audioName);

            if (audioItem == null)
            {
                return;
            }

            audioItem.Clip = audioClip;
            if (audioItem.State == AudioState.Loading)
            {
                ChangeState(audioName, AudioState.Play);
            }
        }
Example #13
0
        /// <summary>移除声音及相关声音组件</summary>
        public void RemoveAudios(params string[] audioNames)
        {
            for (int i = 0; i < audioNames.Length; i++)
            {
                string    audioName = audioNames[i];
                AudioItem audioItem = GetAudioItemByName(audioName);

                if (dicAllAudios.ContainsKey(audioName))
                {
                    dicAllAudios.Remove(audioName);
                }
                if (audioItem != null)
                {
                    Destroy(audioItem.gameObject);
                }
            }
        }
Example #14
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 #15
0
 private void PauseState(AudioItem audioItem)
 {
     audioItem.Pause();
 }