Lecteur musique : faire une barre de progression [Résolu]

histl4000 117 Messages postés lundi 3 juillet 2017Date d'inscription 30 décembre 2017 Dernière intervention - 24 déc. 2017 à 15:59 - Dernière réponse : histl4000 117 Messages postés lundi 3 juillet 2017Date d'inscription 30 décembre 2017 Dernière intervention
- 30 déc. 2017 à 18:43
Bonjour,

J'aimerai faire un "slider" qui me permettrai de voir et de changer la durée de la musique. Voici mon slider :

<Slider Width="100" Value="{Binding Test}"/>


En faisant ceci je sais démarrer à une seconde donnée :

public TimeSpan Test
{
get { return _controle.Position = TimeSpan.FromSeconds(50); }
set
{
_controle.Position = value;
//RaisePropertyChanged("Test");
}
}


Je sais pas comment m'y prendre. Donc je voudrai que la barre du slider bouge en fonction de la durée de la musique et je voudrai également pouvoir modifier le temps (exemple: passer de 1min à 2min). Est-ce qu'il y aurait moyen de le faire avec le pattern Observer si oui comment ?
Merci

Afficher la suite 

8 réponses

Répondre au sujet
Whismeril 10836 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 21 janvier 2018 Dernière intervention - Modifié par Whismeril le 25/12/2017 à 22:12
0
Utile
7
Bonsoir,
Ceci
        {
            get { return _controle.Position = TimeSpan.FromSeconds(50); }
ne peut pas marcher, et même Visual Studio devrait te signaler une erreur.
Cela fait quelques jours que tu postes des codes qui ne peuvent pas compiler, qui n’ont presque aucun sens.
Au risque de me répèter, prends le temps d’apprendre les bases de C#, ça t’evitera d’en perdre beaucoup plus (du temps) à bidouiller ou attendre une aide qu’un forum peut difficilement te donner.
Parce que contrairement à ce que tu crois, tu ne te débrouilles (encore) pas en C#.

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
histl4000 117 Messages postés lundi 3 juillet 2017Date d'inscription 30 décembre 2017 Dernière intervention - 27 déc. 2017 à 15:02
Après vérification ce bout de code marchais bien. J'ai relu mes cours et effectivement il y avait un ou deux problèmes dans mon code que j'ai réglé. Par exemple, je faisais ceci dans mon viewmodel mediaElement = new mediaElement(); ce qui était totalement faux (selon la grille de mon projet). Du coup, j'ai créer la balise dans ma vue puis fais des binding :

<MediaElement Name="media" Source="{Binding Source}" LoadedBehavior="{Binding LoadedBehavior}" Volume="{Binding Volume}"/>

Je sais donc bien définir la source. Puis, je met LoadedBehavior en manuel pour pouvoir gérer les play, pause, etc. Et j'ai réussi a faire un slider pour gérer le volume. Par contre, je sais pas comment lier le bouton "play" (et les autres pause, stop,...) à la balise mediaElement. Pour le Volume j'avais fais un ElementName qui me permettait de lier le slider au volume de la musique mais pour les boutons ce n'est pas le même principe. Avez-vous une idée ?
Whismeril 10836 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 21 janvier 2018 Dernière intervention > histl4000 117 Messages postés lundi 3 juillet 2017Date d'inscription 30 décembre 2017 Dernière intervention - 27 déc. 2017 à 19:13
Bonsoir, non là comme ça je n’ai pas d’idée et je suis en déplacement sans ordinateur, et je ne connais pas de site permettant de tester du wpf en ligne.


Par contre, je persiste, ça
public TimeSpan Test
        {
            get { return _controle.Position = TimeSpan.FromSeconds(50); }
c’est incohérent.
Un get doit retourner un résultat, dans ce cas un TimeSpan.
Or
 _controle.Position = TimeSpan.FromSeconds(50); 
ceci est une assignation, pas une « opération », ça ne retourne aucun résultat.
Associé à
return _controle.Position = TimeSpan.FromSeconds(50); 
C’est une erreur de syntaxe.
histl4000 117 Messages postés lundi 3 juillet 2017Date d'inscription 30 décembre 2017 Dernière intervention - 28 déc. 2017 à 13:19
Bonjour, je n'est plus ce bout de code dans mon projet
histl4000 117 Messages postés lundi 3 juillet 2017Date d'inscription 30 décembre 2017 Dernière intervention - 28 déc. 2017 à 13:32
Est-ce que vous connaissez une bibliothèque qui me permettrai de gerer les musiques via une balise comme un peu mediaElement mais adapter au MVVM ? (MediaElement ne dispose pas vraiment de control a part le volume)
histl4000 117 Messages postés lundi 3 juillet 2017Date d'inscription 30 décembre 2017 Dernière intervention - 30 déc. 2017 à 18:43
j'ai trouvé, mediaPlayer réponds bien à mes exigences.
Commenter la réponse de Whismeril