IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Lu Kiss
Člen
Avatar
Lu Kiss:4.11.2014 22:12

Zdravíčko, pokouším se o vlastní přehrávač ve wpf pomocí System.Window­s.Media.Media­Player.
Přehrát jeden mp3 soubor se mi podaří, ale nemám tucha jak přehrát více skladeb, jelikož nevím jak zjistit časovou délku mp3 souboru, který by sloužil pro Timer - nebo to udělat nějak jinak?

void PlayAll(ObservableCollection<Uri> songs)
        {
            foreach (Uri song in songs)
            {
                this.Play(song);
            }
        }
void Play(Uri song)
        {
            this.mediaPlayer.Open(song);
            this.mediaPlayer.Play();
            //tady ten Timer, ale nevím jestli to je nejvhodnější použití.
        }

Když jsem koukal na codeproject či stackowerflow tak většinou používali přímo komponentu MediaPlayer nebo třídy z XNA, což se mi moc nechce no.

 
Odpovědět
4.11.2014 22:12
Avatar
Odpovídá na Lu Kiss
Neaktivní uživatel:4.11.2014 22:54

Možností je víc. Samotný MediaPlayer má NaturalDuration nebo událost MediaEnded, ve které spustíš další písničku.

Nahoru Odpovědět
4.11.2014 22:54
Neaktivní uživatelský účet
Avatar
Lu Kiss
Člen
Avatar
Odpovídá na Neaktivní uživatel
Lu Kiss:4.11.2014 23:15

o tom MediaEnded jsem věděl, ale jelikož mám jisté rezervy co se týče událostí, tak si moc nevím rady, tu událost zavolám po

this.mediaPlayer.Play();

že? a pak zavolám tu událost

this.mediaPlayer.MediaEnded += mediaPlayer_MediaEnded;

a v té metodě by měl být ten časovač?

void mediaPlayer_MediaEnded(object sender, EventArgs e)
        {

        }
 
Nahoru Odpovědět
4.11.2014 23:15
Avatar
Lako
Člen
Avatar
Odpovídá na Lu Kiss
Lako:5.11.2014 11:42

události nevoláš ty. Ty se zavolají samy, pokud je má kdo odebírat (což jsi zajistil v druhém řádku)..
Tedy jenom prohoď první a druhý řádek (což možná ani nemusíš)
Až ti skladba dohraje, tak se ti zavolá metoda mediaPlayer_Me­diaEnded. tam třeba spustíš další, či cokoliv jiného.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
5.11.2014 11:42
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.