26. juli 2015 - 22:29Der er
8 kommentarer og 1 løsning
Simpel mp3 afspiller i C#
Hej. Jeg er ved at oprette en windows8.1 app ved brug af XAML og C#. Målet er at lave en mp3 afspiller, der afspiller 4 sange. og hvor brugeren kun kan trykke "Play" "Stop" "Next". Jeg starter i xaml med at lave et <MediaElement/> til hver sang. Så laver jeg knapperne. <Button/>. Dernest går jeg til .cs delen hvor jeg bruger C# til at "Connecte" knapperne, ved at bruge if, og while..
private void Next_Click(object sender, RoutedEventArgs e) { if (media2 != null) media1.Play(); while (media1 != null) media2.Stop(); if (media1 != null) media2.Play(); while (media2 != null) media1.Stop();
} Det "virker". Jeg får ingen fejlkoder. Men programmet "fryser" når jeg skifter nr/trykker på "Next". Jeg er ret sikker på at det er min kodning der er noget galt med, men jeg kan ikke helt gennemskue hvor den skulle være gal ?
Jeg tænkte nok der var noget med det der !=null Det er fordi jeg bruger forskellige tutors til det her projekt. Men hvad skal jeg så sætte ind i stedet for ? Har bla prøvet.
while (Media1.Play)
Media2.Stop();
Men så kommer der en fejlkode i (media.Play). Den siger at den ikke kan konvetere "metode" til "bool".
Mediaelements har en property der hedder position der kan fortælle hvor langt den er i en afspilning, så når du laver en stop, så sætter du position til 0 (Som en timespan) og du kan se om den er igang med at spille hvis position != 0. TL;DR Media1.Position viser hvor langt den er i en sang.
(Det underlige er også her.. At selvom der er to <StackPanel> Skal der kun være en </StackPanel> Ellers kommer der en fejlkode ?) I C# har jeg så sammensat det hele således.. private void Play_Click(object sender, RoutedEventArgs e) { media2.Play(); }
private void Next_Click(object sender, RoutedEventArgs e) { if (media2 != null) media1.Play(); while (media1 != null) media2.Stop(); if (media1 != null) media2.Play(); while (media2 != null) media1.Stop();
Lige en sidebemærkning: Det er rigtig besværligt at oprette et mediaelement pr sang i din musikafspiller, så en løsning kan være at skifte sourcen ud istedet. media.Source = "";
C# er objekt orienteret programmering. Du har et media element der hedder media1 f.eks. som du i din XAML har defineret Source="Mp3/Lyd1.mp3". Dette kan vi så, ved tryk på next, skifte til media1.Source = "Mp3/Lyd2.mp3"
Okay. Jeg skal lige bruge noget tid på at få det til at virke. Acceptere dit svar og tak for hjælpen. :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.