Bonjour à toutes et tous !
Alors voilà, je franchis enfin le pas. Après 10 ans de petit codage sous R et Matlab pour mon boulot scientifique, je passe enfin à la "vrai" programmation. Peut-être pour une réorientation professionnelle.
Je suis autodidacte et j'ai toujours eu beaucoup de facilité dans la logique de programmation. Mais bien sûr, après 24h de bidouillage je suis perdu. Logique, visual studio et le C# sont tout nouveaux pour moi.
Je ne vais donc pas vous demander de coder toute mon application, mais si vous pouvez m'orienter un peu dans mes recherches de débutant pour éviter que je me perde dans des solutions inélégantes.
Mon premier projet est un petit compagnon pour last.fm qui me servirait lorsque je stream de la musique. En gros, elle devrait afficher les informations de la musique en cours de lecture sur Qobuz (qui scroble vers last.fm le titre de la musique en cours de lecture).
Après 24h de prise en main, j'arrive juste (ou déjà
?) à afficher quelques informations (Jaquette de l'album, titre chanson...) récupérées en xml via l'api last.fm.
J'en arrive donc au moment où je dois rendre tout cela dynamique. Je veux que ces informations changent quand le xml de last.fm change (changement de piste). (Pour l'instant je travaille sur deux fenêtres seulement : MainWindow.xaml et MainWindows.xaml.cs)
Par exemple, pour la jaquette j'ai :
<Image x:Name="image1" HorizontalAlignment="Left" Height="326" Margin="18,74,0,0" VerticalAlignment="Top" Width="458"/>
et :
1 2 3 4 5 6 7 8
| XmlReader xmlReader = XmlReader.Create("http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=Moi&api_key=MonAPIkey&limit=1");
xmlReader.ReadToFollowing("image");
string azer = xmlReader.ReadElementContentAs(typeof(string),null).ToString();
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = new Uri(azer); ;
bitmapImage.EndInit();
image1.Source = bitmapImage; |
Donc premièrement, quelle est la meilleure méthode pour identifier un changement dans le xml ? Je pensais partir vers l'utilisation d'un timer qui chaque seconde compare le xml précédent avec l'actuel.
Ensuite, si il y a un changement, je pensais simplement utiliser une fonction return pour revenir en arrière dans mon code et donc mettre à jour mon image.
C'est simple mais je suis sûr qu'il doit exister quelque chose de plus performant. Du côté du "binding" par exemple pour éviter la partie return ?
Voilà, merci donc de m'orienter vers la meilleure solution, pas besoin de longues explications.
Sinon, vous validez mon choix du langage ? J'ai choisit c# car je voudrais utiliser plus tard xamarin pour coder des applications multiplateformes.
Merci à vous ! Désolé si mes propos sont un peu noob... j'avoue l'être sur ce coup !
Partager