Thema: Delphi Bass.dll Channel 0 ?!

Einzelnen Beitrag anzeigen

Nils_13

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

Bass.dll Channel 0 ?!

  Alt 16. Sep 2006, 16:49
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:
Angehängte Dateien
Dateityp: zip units_195.zip (72,2 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat