Example #1
0
        public void Initialize(PYAudioTags audioTag)
        {
            //_currentAudioTag = audioTag;
            _triggersAction.Clear();
            _queueTriggers.Clear();

            AudioSource.OnPlaying   += AudioSource_onPlaying;
            AudioSource.OnCompleted += AudioSource_onCompleted;
        }
Example #2
0
        public PYAudioSource StartBundleAudio(PYAudioTags audioTag, PYGroupTag group)
        {
            if (audioTag.ToString().StartsWith("B_"))
            {
                return(StartBundleAudioClip(PYBundleManager.Localization.GetAsset <AudioClip>(audioTag.ToString().Replace("B_", "")), audioTag, group));
            }

            return(StartAudio(audioTag));
        }
Example #3
0
        public void Stop(PYAudioTags audio)
        {
            PYAudioSource audioSource = GetPYAudioSource(audio);

            if (audioSource == null)
            {
                return;
            }

            audioSource.Stop();
        }
Example #4
0
        /// <summary>
        /// Use this to play audios from a specific bundleManager
        /// </summary>
        /// <param name="bundleManager">From which bundleManager the audio will be fetch</param>
        /// <param name="audioTag">Use PYAudioTags that start with a B_</param>
        /// <param name="group">In which group/channel this audio will be played</param>
        /// <returns></returns>
        public PYAudioSource StartAudio(PYBundleSubManager bundleManager, PYAudioTags audioTag, PYGroupTag group)
        {
            PYAudioSource audioSource = GetPYAudioSource(audioTag);

            if (audioSource != null && audioSource.Track.GroupTag == PYGroupTag.Voice)
            {
                return(audioSource);
            }

            return(StartAudio(audioTag, new AudioTrack(group, bundleManager.GetAsset <AudioClip>(audioTag.ToString().Replace("B_", "")))));
        }
Example #5
0
        public void Stop(PYAudioTags audio, float fadeDuration)
        {
            PYAudioSource source = GetPYAudioSource(audio);

            if (source == null)
            {
                return;
            }

            source.Stop(fadeDuration);
        }
Example #6
0
 /// <summary>
 /// Use this to play bundleAudios from Localization folder
 /// </summary>
 /// <param name="audioTag">Use PYAudioTags that start with a B_</param>
 /// <param name="group">In which group/channel this audio will be played</param>
 /// <returns></returns>
 public PYAudioSource StartAudio(PYAudioTags audioTag, PYGroupTag group)
 {
     if (audioTag.ToString().StartsWith("B_"))
     {
         return(StartAudio(PYBundleManager.Localization, audioTag, group));
     }
     else
     {
         return(StartAudio(audioTag, new AudioTrack(audioTag.ToString(), group, GetAudioTrack(audioTag).PathToClip)));
     }
 }
Example #7
0
 public bool RemoveTriggerAction(PYAudioTags audioTag, PYAudioTrigger.Trigger trigger)
 {
     if (_audioTriggers.ContainsKey(audioTag))
     {
         return(_audioTriggers[audioTag].Remove(trigger));
     }
     else
     {
         return(false);
     }
 }
Example #8
0
 public bool RemoveListenerPYAudio(PYAudioTags audioTag, PYAudioSource.EventListenerData listener)
 {
     if (_audioSourceActions.ContainsKey(audioTag))
     {
         return(_audioSourceActions[audioTag].Remove(listener));
     }
     else
     {
         return(false);
     }
 }
Example #9
0
 public PYAudioSource GetPYAudioSource(PYAudioTags audioTag)
 {
     for (int x = 0; x < _executingAudioSources.Count; x++)
     {
         if (_executingAudioSources[x].AudioTag == audioTag)
         {
             return(_executingAudioSources[x]);
         }
     }
     return(null);
 }
Example #10
0
        public void Resume(PYAudioTags audio)
        {
            PYAudioSource audioSource = GetPYAudioSource(audio);

            if (audioSource == null)
            {
                return;
            }

            audioSource.Resume();
        }
Example #11
0
        private PYAudioSource StartBundleAudioClip(AudioClip audioClip, PYAudioTags audioTag, PYGroupTag group)
        {
            PYAudioSource audioSource = GetPYAudioSource(audioTag);

            if (audioSource != null && audioSource.Track.GroupTag == PYGroupTag.Voice)
            {
                return(audioSource);
            }

            return(StartAudio(audioTag, new AudioTrack(group, audioClip)));
        }
Example #12
0
 private static void PlayAudio(PYAudioTags tag, Action <PYAudioSource.PYAudioSourceEventData> callback = null, float delay = 0)
 {
     if (PYBundleManager.Instance != null)
     {
         PYAudioManager.Instance.StartAudio(tag, PYGroupTag.Voice).Delay(delay).Play(callback);
     }
     else
     {
         string tagString = tag.ToString().Replace("B_", "Voice_" + PlaytableWin32.Instance.Language.Replace("-", "") + "_");
         PYAudioManager.Instance.StartAudio((PYAudioTags)Enum.Parse(typeof(PYAudioTags), tagString)).Delay(delay).Play(callback);
     }
 }
Example #13
0
        /// <summary>
        /// Use this when you need to play a AudioClip inside a group/channel
        /// </summary>
        /// <param name="audioClip">AudioClip to be played</param>
        /// <param name="group">In which group/channel this audio will be played</param>
        /// <returns></returns>
        public PYAudioSource StartAudio(AudioClip audioClip, PYGroupTag group)
        {
            PYAudioTags audioTag = (PYAudioTags)ConvertNameToTag(audioClip.name);

            PYAudioSource audioSource = GetPYAudioSource(audioTag);

            if (audioSource != null && audioSource.Track.GroupTag == PYGroupTag.Voice)
            {
                return(audioSource);
            }

            return(StartAudio(audioTag, new AudioTrack(group, audioClip)));
        }
Example #14
0
        /// <summary>
        /// Use this to play Resource audios
        /// </summary>
        /// <param name="audioTag">Use PYAudioTags that dont start with a B_</param>
        /// <returns></returns>
        public PYAudioSource StartAudio(PYAudioTags audioTag)
        {
            PYAudioSource audioSource = GetPYAudioSource(audioTag);

            if (audioSource != null && audioSource.Track.GroupTag == PYGroupTag.Voice)
            {
                return(audioSource);
            }

            AudioTrack track = (audioTag == PYAudioTags.None) ?
                               new AudioTrack(audioTag.ToString(), PYGroupTag.Master, string.Empty) : GetAudioTrack(audioTag);

            return(StartAudio(audioTag, track));
        }
Example #15
0
        public PYAudioSource.EventListenerData AddListenerPYAudio(PYAudioTags audioTag, PYAudioSource.EventsType type, Action <PYAudioSource.PYAudioSourceEventData> action)
        {
            if (!_audioSourceActions.ContainsKey(audioTag))
            {
                _audioSourceActions.Add(audioTag, new List <PYAudioSource.EventListenerData>());
            }
            _audioSourceActions[audioTag].Add(new PYAudioSource.EventListenerData()
            {
                Type = type, Action = action
            });

            // Caso o audio já esteja rodando adicionamos a ação nele
            PYAudioSource audioSource = GetPYAudioSource(audioTag);

            if (audioSource)
            {
                audioSource.AddListinerToEvent(type, action);
            }

            return(_audioSourceActions[audioTag][_audioSourceActions[audioTag].Count - 1]);
        }
Example #16
0
        public PYAudioTrigger.Trigger AddTriggerAction(PYAudioTags audioTag, float time, Action action)
        {
            if (!_audioTriggers.ContainsKey(audioTag))
            {
                _audioTriggers.Add(audioTag, new List <PYAudioTrigger.Trigger>());
            }
            _audioTriggers[audioTag].Add(new PYAudioTrigger.Trigger()
            {
                Time = time, Action = action
            });

            // Caso o audio já esteja rodando adicionamos o trigger nele
            PYAudioSource audioSource = GetPYAudioSource(audioTag);

            if (audioSource)
            {
                audioSource.AudioTrigger.AddTriggerAction(time, action);
            }

            return(_audioTriggers[audioTag][_audioTriggers[audioTag].Count - 1]);
        }
Example #17
0
        public void Initialize(PYAudioTags audioTag, PYAudioManager.AudioTrack track)
        {
            AudioTag = audioTag;
            Track    = track;
            Group    = PYAudioManager.Instance.Groups[Track.GroupTag];

            if (_source == null)
            {
                _source = GetComponent <AudioSource>();
            }

            _source.playOnAwake           = false;
            _source.clip                  = Track.Clip;
            _source.loop                  = false;
            _source.mute                  = Group.Mute;
            _source.volume                = Group.Volume;
            _source.pitch                 = 1;
            _source.outputAudioMixerGroup = PYAudioManager.Instance.Mixer.FindMatchingGroups(Track.GroupTag.ToString())[0];

            if (_source.clip != null)
            {
                _duration = _source.clip.length;
            }

            _delay              = 0;
            _loop               = false;
            IsPlaying           = IsPaused = false;
            _isStoppingWithFade = false;

            OnStartPlaying = null;
            OnPlaying      = null;
            OnResume       = null;
            OnPaused       = null;
            OnCompleted    = null;
            OnStopped      = null;

            AudioTrigger.Initialize(audioTag);
        }
Example #18
0
        // Base method for others implementations
        private PYAudioSource StartAudio(PYAudioTags audioTag, AudioTrack track)
        {
            PYAudioSource audioSource = CreatePYAudioSource(audioTag.ToString());

            audioSource.Initialize(audioTag, track);

            if (_audioTriggers.ContainsKey(audioSource.AudioTag))
            {
                foreach (PYAudioTrigger.Trigger trigger in _audioTriggers[audioSource.AudioTag])
                {
                    audioSource.AudioTrigger.AddTriggerAction(trigger);
                }
            }

            if (_audioSourceActions.ContainsKey(audioSource.AudioTag))
            {
                foreach (PYAudioSource.EventListenerData listener in _audioSourceActions[audioSource.AudioTag])
                {
                    audioSource.AddListenerToEvent(listener);
                }
            }

            return(audioSource);
        }
Example #19
0
 private AudioTrack GetAudioTrack(PYAudioTags audioTag)
 {
     return(Audios.Find(item => item.Tag == audioTag.ToString()));
 }
Example #20
0
        void SetScore(string message, string name, int score, TagManager.GameDifficulty difficulty, PYAudioTags voiceMsg)
        {
            if (!char.IsLetter(name[0]))
            {
                return;
            }

            string[] studentNames = PYScoreData.GetStudentNames();

            PlayTableKeyboard.Instance.SetText(name);
            PlayTableKeyboard.Instance.ShowText();

            if (new List <string>(studentNames).Contains(name))
            {
                string messageText = message;

                PYAudioManager.Instance.StartAudio(voiceMsg).Play();

                PYAudioManager.Instance.StartAudio(PYAudioTags.Voice_ptBR_RegistrarPop01).Play();
                PYAlertPopup popup = PYAlertPopup.InvokeAlertPopup("Popups/AlertPopup_2b").SetTitle("ATENÇÃO!", 1).SetText(messageText.ToUpper(), 1);
                popup.AddButton("PYButtonEffectManager", "NÃO").AddButtonAction(0, () =>
                {
                    PlayTableKeyboard.Instance.Close();
                    PYAudioManager.Instance.StartAudio(PYAudioTags.Voice_ptBR_No).Play();
                });
                popup.AddButton("PYButtonEffectManager_Smaller", "SIM").AddButtonAction(1, () =>
                {
                    CheckScore(name, score, difficulty);
                    PYAudioManager.Instance.StartAudio(PYAudioTags.Voice_ptBR_Yes).Play();
                });
                popup.ClosePopupByFader = false;
                popup.Open();
            }
            else
            {
                RegisterScore(name, score, difficulty);
            }
        }
Example #21
0
 public bool IsPlaying(PYAudioTags audioTag)
 {
     return(_executingAudioSources.Find((data) => data.AudioTag == audioTag) != null);
 }
Example #22
0
 public PYPlayerTag(string name, PYAudioTags tag)
     : base(name)
 {
     Tag = tag;
 }