Lecteur musique : faire une barre de progression

Résolu/Fermé
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 - Modifié le 24 déc. 2017 à 16:43
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 - 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

A voir également:

1 réponse

Whismeril Messages postés 18015 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 décembre 2022 876
Modifié le 25 déc. 2017 à 22:12
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
0
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 2
Modifié le 25 déc. 2017 à 22:22
D'accord. Mais le bout de code marche. Il n'y a pas d'erreur. Ma musique commence bien à la seconde 50.
Bonne soirée.
0
Whismeril Messages postés 18015 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 décembre 2022 876
25 déc. 2017 à 22:25
Vérifie bien, si ton programme fonctione, alors tu n’as pas posté le bon code.
Ce qui est écrit au-dessus est contraire à la syntaxe de C#
0
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 2
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 ?
0
Whismeril Messages postés 18015 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 2 décembre 2022 876 > histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018
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.
0
histl4000 Messages postés 129 Date d'inscription lundi 3 juillet 2017 Statut Membre Dernière intervention 12 juillet 2018 2
28 déc. 2017 à 13:19
Bonjour, je n'est plus ce bout de code dans mon projet
0