Avatar
Lu Kiss
Člen
Avatar
Lu Kiss:

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
Posix
Člen
Avatar
Odpovídá na Lu Kiss
Posix:

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

Nahoru Odpovědět  +1 4.11.2014 22:54
Proč to dělat jednoduše, když to jde složitě.
Avatar
Lu Kiss
Člen
Avatar
Odpovídá na Posix
Lu Kiss:

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:

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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 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.