Hi,
ich bastle jetzt schon relativ lange an einem prob herum und komm einfach auf keine Lösung.
Ich habe aus einem Verzeichnis alle mp3 Titel in eine Liste eingelesen und möchte die nun nacheinander wiedergeben.
Das klingt auf den ersten Blick ja gar nicht so schwer. Zum Beispiel habe ich alle Titel über eine Schleife aufgerufen. Wenn ich das mache rast er aber durch die Schleife durch und spielt nur der letzten Titel ab (was ja auch völlig logisch ist). Aus dem Grund habe ich Ihn dann mit sleep oder wait für die Länge des jeweiligen Tracks zur Ruhe gelegt. So kann er dann in Ruhe jedes Lied ausspielen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| procedure TForm1.Button1Click(Sender: TObject); var songcounter, c: integer; mp3File:string;
Begin songcounter:= mp3List.Items.Count; for c:=0 to (songcounter-1) do begin mp3File := Concat(txtFolder.Caption, mp3List.Items.Strings[c]); Progress.Max:=0; mp3player.Close; mp3player.FileName:=mp3File; mp3player.Open; mp3player.Play; Progress.Max := mp3player.Length; sleep(mp3player.Length); end; end; |
Nun zu meinem Prob. Wenn er mit sleep oder wait wartet wartet ja auch die ganz App. und ich kann dann nichts mehr machen (nicht mal beenden).
Nun habe ich es die halbe Nacht mit threads versucht aber die wollten nicht so recht (mangels Kenntnisse meinerseits).
Wie müsste ich so einen Thread mit den entsprechenden Parametern aus der From (also mp3player, mp3List, txtFolder) aufbauen und in der Form aufrufen das er alle Titel nacheinander spielt und ich die App. währenddessen aber trotzdem noch steuern (oder wenigstens beenden) kann.
Hoffe Ihr könnt mir helfen
Danke Rainer
Moderiert von
Klabautermann: Delphi- & Highlight-Tags hinzugefügt.