AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Playlist: Wiederholungsproblem

Ein Thema von Nils_13 · begonnen am 15. Jul 2006 · letzter Beitrag vom 15. Jul 2006
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Playlist: Wiederholungsproblem

  Alt 15. Jul 2006, 12:05
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;
  // ...
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Playlist: Wiederholungsproblem

  Alt 15. Jul 2006, 12:22
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:
with lbList do
  if (Items.Count > 0) then
    ItemIndex := Succ(ItemIndex) mod Items.Count;
Gruß Hawkeye
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Playlist: Wiederholungsproblem

  Alt 15. Jul 2006, 12:48
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
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz