![]() |
nächsten Song mittels OnNotify der TMediaPlayer Komponente
Hallo,
Ich hätte da mal eine kleine Frage, ich bin dabei nen kleinen Media Player zu proggen, nichts großes. Ich habe zunächst mal eine Playlist mit der ListBox Kompo. gemacht. Funktioniert soweit auch wunderbar, aber wenn ein Lied zuende ist muss das nächste gespielt werden und da haperts bei mir, bisher hab ich das so gelöst, nur schmiert der Player ab wenn man dann einen Eintrag in der ListBox(Playlist) auswählt:
Delphi-Quellcode:
Könnte mir da freundlicherweise mal jemand zur Hand gehen, und mir sagen wie ich das richtig progge?, Vielen Dank schonmal im Vorraus an alle die mir helfen und helfen wollen.
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin Listbox1.ItemIndex := Listbox1.ItemIndex + 1; OpenDialog1.FileName := ListBox1.Items[Listbox1.ItemIndex]; MediaPlayer1.FileName := OpenDialog1.FileName; MediaPlayer1.Open; MediaPlayer1.Play; Label5.Caption := MediaPlayer1.FileName; end; |
Re: nächsten Song mittels OnNotify der TMediaPlayer Komponen
Hmmm...Wozu jedesmal einen einen Open- DIALOG aufrufen ???
Wenn in der Liste schon Namen drinstehen... ...müßte es doch reichen, Filename gleich dem MediaPlayer zu übergeben...?! Kleiner Test...Filenamen beim Create schon geladen...
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin {1. Item in Listbox} ListBox1.Items.Text := 'c:\windows\media\Jungle Fehler.wav' ; {2. Item in Listbox} ListBox1.Items.Add('c:\windows\media\Jungle Frage.wav') ; {3.Item in Listbox} ListBox1.Items.Add('c:\windows\media\Jungle Öffnen.wav'); {1. Item- Wert laden und öffnen} MediaPlayer1.Filename := Listbox1.Items[0] ; MediaPlayer1.open ; end; procedure TForm1.MediaPlayer1Notify(Sender: TObject); begin {Das übliche: Listbox- Index um 1 hochzählen, abspielen...} Listbox1.ItemIndex := Listbox1.ItemIndex + 1; Label5.Caption := Listbox1.Items[Listbox1.ItemIndex] ; MediaPlayer1.FileName := Listbox1.Items[Listbox1.ItemIndex] ; MediaPlayer1.Open; ... {Wenn höchster Listeneintrag erreicht ist...stoppen oder was anderes tun...} ... end; |
Re: nächsten Song mittels OnNotify der TMediaPlayer Komponen
Zitat:
Delphi-Quellcode:
ruft AFAIR keinen OD auf. Er setzt nur den Dateinamen des OpenDialogs, um ihn anschließend von dort zu übernehmen. AFAIK wird ohne den Aufruf von Execute oder Show kein OpenDialog angezeigt.
OpenDialog1.FileName := ListBox1.Items[Listbox1.ItemIndex];
MediaPlayer1.FileName := OpenDialog1.FileName; Nichtsdestotrotz ist obiger Code Schwachfug ;) Greetz alcaeus |
Re: nächsten Song mittels OnNotify der TMediaPlayer Komponen
ähm ich würde mal überprüfgen, ob der index zulässig ist. nicht, dass du aus der listbox hinausschiesst ;-)
|
Re: nächsten Song mittels OnNotify der TMediaPlayer Komponen
irgendwie bin ich ein wenig verwirrt von den Antworten hier.
Also mit dem Code von ft16a kann ich irgendwie nichts anfangen. Wieso soll ich denn beim FormCreate festlegen welche Datei geladen werden soll?, das wird doch über einen Button geregelt welche Playlist geladen werden soll, oder welche Datei man der Playlist hinzufügt. @alcaeus: Weshalb ist denn der Code Schwachfug? @mumu: Verstehe nicht ganz was du meinst, kannst ja vll mal nen Beispielcode beigeben, wäre nett. |
Re: nächsten Song mittels OnNotify der TMediaPlayer Komponen
irgendwie bin ich ein wenig verwirrt von den Antworten hier.
Also mit dem Code von ft16a kann ich irgendwie nichts anfangen. Wieso soll ich denn beim FormCreate festlegen welche Datei geladen werden soll?, das wird doch über einen Button geregelt welche Playlist geladen werden soll, oder welche Datei man der Playlist hinzufügt. @alcaeus: Weshalb ist denn der Code Schwachfug? @mumu: Verstehe nicht ganz was du meinst, kannst ja vll mal nen Beispielcode beigeben, wäre nett. EDIT: Sorry das ich den Beitrag 2 mal abgeschickt habe, hatte Browser Probs. |
Re: nächsten Song mittels OnNotify der TMediaPlayer Komponen
Zitat:
ft16a |
Re: nächsten Song mittels OnNotify der TMediaPlayer Komponen
bei meinem player
![]() im onnotify wird dann anhand der position des mediaplayers überprüft ob das notify am anfang oder am ende aufgerufen wird. anschliessend wird die routine playitem(aktuellenummer + 1) aufgerufen, die a) überprüft ob der listenindex übreschritten wird und b) falls nein, das passende lied abspielt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz