none
Progression de volume non linéaire avec un DispatcherTimer RRS feed

  • Question

  • Bonjour,

    Je voudrais reproduire une effet de fade-in (progression de 0 à 100) au début de la lecture d'un son. Et je voudrais que cette progression ne soit pas linéaire, mais plutôt du style ease-in (exponentielle)

    J'utilise un DispatcherTimer et voici ce que j'ai pour l'instant (donc, une progression linéaire)

    Imports System.Windows.Threading
    Dim FadeTimer As DispatcherTimer = New DispatcherTimer()
    
    AddHandler FadeTimer.Tick, AddressOf FadeIn
    FadeTimer.Interval = TimeSpan.FromMilliseconds(25)
    
    Public Sub FadeIn(ByVal sender As Object, ByVal e As EventArgs)
      If UISound.musicPlayer.settings.volume < My.Settings.music_volume Then
        'UISound est ma class qui gère le son - musicPlayer est un WMPlib - My.Settings.music_volume est le volume du son maximal
        UISound.musicPlayer.settings.volume += 1
        CommandManager.InvalidateRequerySuggested()
      Else
        FadeTimer.Stop()
      End If
    End Sub
    
    FadeTimer.Start()

    Comment puis-je donc, à l'aide d'un DispatcherTimer faire "monter" le son de façon exponentielle?

    Merci pour le temps que vous voudrez bien prendre pour m'y aider!!

    vendredi 23 novembre 2012 12:12

Réponses

Toutes les réponses