private void AddFade(AudioClipModel clip, float startVolume, float endVolume, float duration) { TryRemoveFade(clip); var fade = new AudioFadeState(clip, startVolume, endVolume, duration); _activeAudioFades.Add(fade); }
public void Update(GameTime gameTime) { float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds; if (FadeState == AudioFadeState.In) { BaseInstance.Volume = Math.Min(1, BaseInstance.Volume + (elapsed * FadeSpeed)); if (BaseInstance.Volume == 1) { FadeState = AudioFadeState.Normal; } } else if (FadeState == AudioFadeState.Out) { BaseInstance.Volume = Math.Max(0, BaseInstance.Volume - (elapsed * FadeSpeed)); if (BaseInstance.Volume == 0) { FadeState = AudioFadeState.Normal; if (BaseInstance.State != SoundState.Stopped) { BaseInstance.Stop(); } } } }
public void FadeIn() { FadeState = AudioFadeState.In; if (BaseInstance.State != SoundState.Playing) { BaseInstance.Play(); } }
public void FadeOut() { FadeState = AudioFadeState.Out; }