/// <summary> /// Resumes a paused song, if there is one. /// </summary> public static void ResumeMusic(AudioTransitionStates transition = AudioTransitionStates.CrossFade) { _Instance.AudioTransitionState = transition; if (_Instance.MusicCue1 != null && _Instance.MusicCue1.IsPaused) { if (transition == AudioTransitionStates.CrossFade) { _Instance.MusicCue1.Play(); } if (_Instance.MusicCue2 != null) { _Instance.MusicCue2.Stop(); } } if (_Instance.MusicCue2 != null && _Instance.MusicCue2.IsPaused) { if (transition == AudioTransitionStates.CrossFade) { _Instance.MusicCue2.Play(); } if (_Instance.MusicCue1 != null) { _Instance.MusicCue1.Stop(); } } }
/// <summary> /// Pauses the current song and plays a new one. /// </summary> public static void PausePlay(string musicName, float fadeDuration = 0, AudioTransitionStates transition = AudioTransitionStates.CrossFade) { if (_Instance.MusicCue1 != null && _Instance.MusicCue1.IsPlaying) { _Instance.MusicCue1.Pause(); } if (_Instance.MusicCue2 != null && _Instance.MusicCue2.IsPlaying) { _Instance.MusicCue2.Pause(); } PlayMusic(musicName, fadeDuration, transition); }
/// <summary> /// Plays a new song with an optional fade duration and transition. Stops the current song if there is one playing. /// </summary> public static void PlayMusic(string musicName, float fadeDuration = 0, AudioTransitionStates transition = AudioTransitionStates.CrossFade) { if (!_Instance.MusicEnabled) { return; } if ((_Instance.MusicCue1 != null) && (_Instance.MusicCue1.Name == musicName) || (_Instance.MusicCue2 != null) && (_Instance.MusicCue2.Name == musicName)) { return; } _Instance.AudioTransitionState = transition; if (_Instance.MusicCue1 == null) { _Instance.MusicCue1 = new CorvMusicCue(_Instance.SoundBank.GetCue(musicName), fadeDuration); if (transition == AudioTransitionStates.CrossFade) { _Instance.MusicCue1.Play(); } if (_Instance.MusicCue2 != null && (!_Instance.MusicCue2.IsPaused && !_Instance.MusicCue2.IsPausing)) { _Instance.MusicCue2.Stop(); } } else { _Instance.MusicCue2 = new CorvMusicCue(_Instance.SoundBank.GetCue(musicName), fadeDuration); if (transition == AudioTransitionStates.CrossFade) { _Instance.MusicCue2.Play(); } if (_Instance.MusicCue1 != null && (!_Instance.MusicCue1.IsPaused && !_Instance.MusicCue1.IsPausing)) { _Instance.MusicCue1.Stop(); } } //deals with the initial case where nothing is playing. if (_Instance.MusicCue1 != null && !_Instance.MusicCue1.IsPlaying && _Instance.MusicCue2 == null) { _Instance.MusicCue1.Play(); } }
/// <summary> /// Resumes a paused song, if there is one. /// </summary> public static void ResumeMusic(AudioTransitionStates transition = AudioTransitionStates.CrossFade) { _Instance.AudioTransitionState = transition; if (_Instance.MusicCue1 != null && _Instance.MusicCue1.IsPaused) { if (transition == AudioTransitionStates.CrossFade) _Instance.MusicCue1.Play(); if (_Instance.MusicCue2 != null) _Instance.MusicCue2.Stop(); } if (_Instance.MusicCue2 != null && _Instance.MusicCue2.IsPaused) { if (transition == AudioTransitionStates.CrossFade) _Instance.MusicCue2.Play(); if (_Instance.MusicCue1 != null) _Instance.MusicCue1.Stop(); } }
/// <summary> /// Plays a new song with an optional fade duration and transition. Stops the current song if there is one playing. /// </summary> public static void PlayMusic(string musicName, float fadeDuration = 0, AudioTransitionStates transition = AudioTransitionStates.CrossFade) { if (!_Instance.MusicEnabled) return; if ((_Instance.MusicCue1 != null) && (_Instance.MusicCue1.Name == musicName) || (_Instance.MusicCue2 != null) && (_Instance.MusicCue2.Name == musicName)) return; _Instance.AudioTransitionState = transition; if (_Instance.MusicCue1 == null) { _Instance.MusicCue1 = new CorvMusicCue(_Instance.SoundBank.GetCue(musicName), fadeDuration); if (transition == AudioTransitionStates.CrossFade) _Instance.MusicCue1.Play(); if (_Instance.MusicCue2 != null && (!_Instance.MusicCue2.IsPaused && !_Instance.MusicCue2.IsPausing)) _Instance.MusicCue2.Stop(); } else { _Instance.MusicCue2 = new CorvMusicCue(_Instance.SoundBank.GetCue(musicName), fadeDuration); if (transition == AudioTransitionStates.CrossFade) _Instance.MusicCue2.Play(); if (_Instance.MusicCue1 != null && (!_Instance.MusicCue1.IsPaused && !_Instance.MusicCue1.IsPausing)) _Instance.MusicCue1.Stop(); } //deals with the initial case where nothing is playing. if (_Instance.MusicCue1 != null && !_Instance.MusicCue1.IsPlaying && _Instance.MusicCue2 == null) _Instance.MusicCue1.Play(); }
/// <summary> /// Pauses the current song and plays a new one. /// </summary> public static void PausePlay(string musicName, float fadeDuration = 0, AudioTransitionStates transition = AudioTransitionStates.CrossFade) { if (_Instance.MusicCue1 != null && _Instance.MusicCue1.IsPlaying) _Instance.MusicCue1.Pause(); if (_Instance.MusicCue2 != null && _Instance.MusicCue2.IsPlaying) _Instance.MusicCue2.Pause(); PlayMusic(musicName, fadeDuration, transition); }