Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Bass.dll Channel 0 ?! (https://www.delphipraxis.net/77225-bass-dll-channel-0-a.html)

Nils_13 16. Sep 2006 16:49


Bass.dll Channel 0 ?!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

hiermit spiele ich Lieder ab:
Delphi-Quellcode:
 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].pfad;
   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
       MsgBox('Cannot play this song!');
       Exit;
     end;
   end;
    BASS_ChannelPlay(chan, TRUE);
 end;
fFiles: Array of TAudioFile;
filename := fFiles[index].pfad;

wenn ich auf den OK-Button im selbstgemachten OpenDialog klicke, wird das hier aufgerufen:
Delphi-Quellcode:
 procedure TfrmMain.AddIt;
 var i : Integer;
 begin
   setlength(f, frmOp.sl.Count);
   for i := 0 to pred(frmOp.sl.Count) do
   begin
     f[i] := frmOp.sl[i];
   end;
   AddFiles(f); [color=#ff0000]*[/color]
 end;
* da wurde AddFiles aufgerufen...:
Delphi-Quellcode:
 procedure TfrmMain.AddFiles(files : Array of String);
 var
   len : integer;
   i  : integer;
 begin
   len := high(fFiles);
   if len < 0 then
     len := 0;
   SetLength(fFiles, len + Length(files));
   for i := 0 to length(files) - 1 do
   begin
     fFiles[len+i] := TAudioFile.Create;
     fFiles[len+i].GetAudioData(Files[i]);
   end;
   UpdateListBox();
 end;

 procedure TfrmMain.UpdateListBox;
 var i : integer;
 begin
   lbList.Items.BeginUpdate;
   lbList.Clear;
   for i:= 0 to length(fFiles) - 1 do
   begin
     lbList.Items.Add(fFiles[i].Artist + ' - ' + fFiles[i].Titel);
   end;
   lbList.Items.EndUpdate;
 end;
In AddFiles läuft etwas schief, denn es wird eine Meldung zum Abfangen einer AV in PlayFile hervorgerufen, wenn ich ein Lied (egal welches in der Playlist(lbList)) abspielen will. Anhand der Meldung weiß ich schonmal das das der Channel leer ist.
Die Frage: Was läuft in AddFiles schief ?


Wissenswert ist noch das:

Nils_13 19. Sep 2006 10:36

Re: Bass.dll Channel 0 ?!
 
Keiner eine Idee :( :( ? Es sieht nur nach viel aus, ist es aber garnicht....


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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