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;
// ...