AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Playlist "In Reihe" funktioniert nicht komplett
Thema durchsuchen
Ansicht
Themen-Optionen

Playlist "In Reihe" funktioniert nicht komplett

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

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

Playlist "In Reihe" funktioniert nicht komplett

  Alt 23. Jul 2006, 16:39
Hi,

ich möchte bei einer Playlist eine Funktion ermögliche, die alle Lieder von Anfang bis Ende in Reihe abspielt und nach dem letzten Lied wieder zum Anfang springt. Warum springt mir der Player bei folgendem Code nicht an den Anfang zurück bzw. spielt das erste Lied nicht ab?
Delphi-Quellcode:
type
  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;

  //...
  private
    fFiles : Array of TID3Tag;
  //...

function TfrmMain.GetBASSInfo(Info: String): Int64;
var
  MilliSec: Integer;
  FloatPos: Float;
begin
  FloatPos:=0;
  if Info = 'GetLengththen FloatPos:=BASS_ChannelBytes2Seconds(Chan, BASS_ChannelGetLength(Chan))
  else if Info = 'GetPositionthen FloatPos:=BASS_ChannelBytes2Seconds(Chan,
  BASS_ChannelGetPosition(Chan));
  MilliSec := Trunc(1000 * FloatPos);
  if MilliSec < 0 then MilliSec:=0;
  Result := Trunc(MilliSec / 1000);
end;

procedure TfrmMain.PlayFile(index : integer);
var filename : String;
begin
  if (index < 0) or (index >= length(fFiles)) then
  begin
    raise Exception.Create('Index ausserhalb des erlaubten bereichs');
  end;
  BASS_ChannelSetPosition(chan, 0);
  BASS_ChannelStop(chan);
  filename := fFiles[index].FileName;
  chan := BASS_StreamCreateFile(FALSE,pchar(filename),0,0,0);
  if chan = 0 then
  begin
    chan := BASS_MusicLoad(False, pchar(filename), 0, 0, BASS_MUSIC_RAMPS or BASS_MUSIC_POSRESET or BASS_MUSIC_PRESCAN, 0);
    if (chan = 0) then
    begin
      ErrorPop('Kann das Lied nicht abspielen !');
      Exit;
    end;
  end;
  tb1.Position := 0;
  tb1.Max := GetBASSInfo('GetLength');
end;

procedure TfrmMain.ErrorPop(str:string);
begin
  if str = 'then
    Showmessage('Error code: '+inttostr(BASS_ErrorGetCode()))
  else
    Showmessage(str);
end;

//...
var playiindex : Integer;
begin
  // tb1 = XiTrackbar (vom programmieren aus gesehen, genauso wie eine normale TTrackBar)
  // lbList = ListBox
  playindex := Max(0, (lbList.ItemIndex + 1) mod lbList.Items.Count);
  if playindex = lbList.Items.Count then
    playindex := 0;
  tb1.Max := GetBASSInfo('GetLength');
    PlayFile(playindex);
end;
  Mit Zitat antworten Zitat
 


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 01:07 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 by Thomas Breitkreuz