Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Playlist im Mediaplayer
RainerT - Mi 06.08.03 15:36
Titel: Playlist im Mediaplayer
Ich habe in meinem Programm eine MediaPlayer-Komponente und ein Stringrid. In dem Stringgrid steht eine Liste von Dateinamen (MP3's) die soetwas wie eine Playlist darstellen.
Jetzt möchte ich bei jedem Klick auf den "Next"-Button des Mediaplayers die nächste Date aus der Liste abspiele, unabhängig davon, ob das abspielen der vorherigen schon beendet ist oder nicht.
Momentan sieht der Code dazu so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TfrmMain.mdplyrMP3Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean); var S1, S2 : String; begin case Button of btNext : begin mdplyrMP3.Stop; mdplyrMP3.Tag := mdplyrMP3.Tag + 1; mdplyrMP3.FileName := strgrdPlaylist.Cells[2, mdplyrMP3.Tag]; mdplyrMP3.Play; S1 := mdplyrMP3.ErrorMessage; s2 := S1; end; end; end; |
In "Tag" steht die Nummer des aktuellen Eintrags im Stringgrid. Also, dass zuweisen des neuen Dateinamens ist nicht das Problem, das funktioniert. Aber nach dem Aufruf von "Play" passiert nichts, obwohl die ErrorMessage sagt, es hätte geklappt.
Hape auch schon versucht, mit Open und Close vor dem wechsel die Komponente zu schliessen und vor dem Play zu öffnen. Funzt aber auch nicht.
Bin da echt ratlos...
Cyrus - Mi 06.08.03 16:04
hast
mdplyrMP3.open;
und
mdplyrMP3.close;
vergessen
Greetz Cyrus
RainerT - Mi 06.08.03 18:31
Hm. Ich habe den Code mal folgendermaßen geändert:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TfrmMain.mdplyrMP3Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean); var S1, S2 : String; begin case Button of btNext : begin mdplyrMP3.Stop; mdplyrMP3.Close; mdplyrMP3.Tag := mdplyrMP3.Tag + 1; mdplyrMP3.FileName := strgrdPlaylist.Cells[2, mdplyrMP3.Tag]; mdplyrMP3.Open; mdplyrMP3.Play; S1 := mdplyrMP3.ErrorMessage; s2 := S1; end; end; end; |
Das ist in sofern besser, als dass er jetzt "weiß" welche Datei die nächste ist. Nur das "mdplyrMP3.Play" bleibt wirkungslos. Er spielt erst das nächste Lied, wenn ich wieder auf den Play-Button drücke...
RainerT - Mi 06.08.03 19:57
...ich hab's raus: Man muss noch "DoDefault" auf False setzen, damit man den Mediaplayer dazu bewegen kann, die Play-Methode aufzurufen wenn man den Next-Button klickt...
:autsch:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!