![]() |
Playlist: Wiederholungsproblem
Hi,
Ich habe in einer Playlist z.B. 2 Lieder. Wenn ich mir das erste Lied angehört habe, wird das darauffolgende Lied abgespielt. Wenn das darauffolgende Lied (in dem Fall, weil es 2 Lieder sind, das letzte Lied) soll wieder das erste Lied abgespielt werden. Ich kann hier natürlich nicht subtrahieren, da es ja auch z.B. 10 Lieder sein können. Bei folgendem Code funktioniert zwar alles, aber wenn ich das letzte Lied gehört habe, wird, anstelle von Sprung zur Startposition, das letzte Lied nochmal wiederholt:
Delphi-Quellcode:
TID3Tag = record ID : string[3]; Titel : string[30]; Artist : string[30]; Album : string[30]; Year : string[4]; Comment : string[30]; Genre : Byte; FileName : string; end; // ... var filename : String; fFiles : Array of TID3Tag; begin // ... if tb1.Position = tb1.Max - 1 then begin if lbList.ItemIndex = lbList.Items.Count then begin filename := fFiles[0].FileName; end else begin tb1.Max := GetSongLength; BASS_ChannelStop(chan); filename := fFiles[lbList.ItemIndex + 1].FileName; chan := BASS_StreamCreateFile(FALSE,pchar(filename),0,0,0); BASS_ChannelPlay(chan, False); end; end; // ... |
Re: Playlist: Wiederholungsproblem
Hallo Nils,
wenn lbList eine ListBox-Referenz ist, dann sollte die Bedingung in Zeile 20 niemals den Wert True annehmen. Der ItemIndex einer ListBox kann nur Werte im Bereich [-1..Items.Count-1] annehmen. Dies wird wahrscheinlich in Zeile 27 zum nächsten Fehler führen, weil du auf ein Element außerhalb des Felds fFiles zugreifst. Den nächsten Index erhältst du so:
Delphi-Quellcode:
Gruß Hawkeye
with lbList do
if (Items.Count > 0) then ItemIndex := Succ(ItemIndex) mod Items.Count; |
Re: Playlist: Wiederholungsproblem
Hallo Nils,
mach doch zwei Schleifen, repeat for i:=0 to lb.count -1 do play title until not never_ending_play Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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