Einzelnen Beitrag anzeigen

Chasmo90
(Gast)

n/a Beiträge
 
#1

BASS_ChannelIsActive Problem

  Alt 18. Jun 2009, 17:04
Also ich hab seit ner halben Stunde einen merkwürdigen Fehler, den ich mir einfach nicht erklären kann
Davor funktionierte alles einwandfrei mit der Klasse, will ich jetzt jedoch die FFT Daten auslesen, hängt sich mein Programm auf.
Die Stelle wo das passiert habe ich auch herausbekommen und ist umso verwunderlicher^^

Delphi-Quellcode:

Type TFFTData = array [0..4096] of Single;

function GetFFT:TFFTData;
var FFT:TFFTData;
begin
if BASS_ChannelIsActive(fMainStream) = BASS_ACTIVE_PLAYING then
  begin
    BASS_ChannelGetData(FMainStream, @FFT, BASS_DATA_FFT8192);
    result := FFT;
  end;
end;
Also das normale abspielen klappt. schalte ich dann die abfrage für FFT dazu, hängt er sich auf!
Nehme ich die Abfrage, ob FMainStream aktiv sei, raus, so hängt er sich nicht auf, FFTDaten bleiben aber alle 0

Hier dann nochmal die Abspielfunktion...hoffe mir kann jemand helfen, da ich noch nie Probleme hatte die Daten auszulesen, ärgert es mich jetzt umso mehr
könnte das vllt an den Flags liegen?
Danke schonmal

Delphi-Quellcode:
procedure Play(aAudioFile : TAudioFile);
begin
  if aAudioFile <> NIL then
  begin
    StopAndFree;
    FMainAudioFile.GetInformations(aAudioFile.MP3Tag.Pfad);
    FMainStream := BASS_StreamCreateFile(FALSE, PChar(aAudioFile.MP3Tag.Pfad), 0, 0, BASS_SAMPLE_FX or BASS_SAMPLE_LOOP);
       if (FMainStream = 0) then
        FMainStream := BASS_MusicLoad(FALSE, PChar(aAudioFile.MP3Tag.Pfad), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_RAMP or BASS_SAMPLE_FX,0);
       if FMainStream = 0 then
        FMainStream := BASS_MusicLoad(FALSE, PChar(aAudioFile.MP3Tag.Pfad), 0, 0, BASS_MUSIC_RAMP OR BASS_MUSIC_PRESCAN ,0);
    BASS_ChannelPlay(fMainStream , true);
       if fMainstream <> 0 then
         begin
          if assigned(fOnPlay) then fOnPlay(Self);
          if assigned(fOnChange) then fOnChange(Self);
         end;
  end;
end;
  Mit Zitat antworten Zitat