Progression de volume non linéaire avec un DispatcherTimer
Jayme65
Messages postés60Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention26 mars 2019
-
23 nov. 2012 à 13:14
Jayme65
Messages postés60Date d'inscriptionlundi 23 avril 2007StatutMembreDernière intervention26 mars 2019
-
23 nov. 2012 à 22:06
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!!
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 23 nov. 2012 à 13:24
Bonjour,
Je dirais :
1) établis ton équation (puisque c'est elle qui fera varier le résultat). Tu n'en parles pas ! Mais cet aspect est purement mathématique.
2) fais-y varier x (+1 à chaque étape) ===>> déduis-en y et applique ce résultat y là :
à la place de :
UISound.musicPlayer.settings.volume += 1
tu dois avoir
UISound.musicPlayer.settings.volume = y
Non ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 23 nov. 2012 à 17:45
ce n'est pas une "formule" !
C'est l'équation de la fonction que tu souhaites (celle qui correspond à l'évolution que tu souhaites du volume). Cet aspect là n'est pas uniquement mathématique ! les paramètres de la fonction, sa constante éventuelle, sont les éléments qui déterminent cette évolution (le tracé de ta courbe souhaité, si cela te "parle" mieux). Pour résumer : cela dépend des "goûts et des couleurs" et nécessite des connaissance minimùales en mathématiques.
Nous n'interviendrons ensuite ici qu'en ce qui concerne (si besoin en était toujours en dépit de ce que je t'ai dit dans mon premier message) la manière de faire évoluer x pour calculer (sur la base de TA fonction f(x), la valeur y = f(x) à appliquer) !!! Il nous faudra alors connaître la fonction f(x) que TU auras jugé retenir car correspondant à TES goûts.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ