AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi BASS_ChannelIsActive Problem
Thema durchsuchen
Ansicht
Themen-Optionen

BASS_ChannelIsActive Problem

Ein Thema von Chasmo90 · begonnen am 18. Jun 2009 · letzter Beitrag vom 19. Jun 2009
Antwort Antwort
Chasmo90
(Gast)

n/a Beiträge
 
#1

BASS_ChannelIsActive Problem

  Alt 18. Jun 2009, 16: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
Chasmo90
(Gast)

n/a Beiträge
 
#2

Re: BASS_ChannelIsActive Problem

  Alt 19. Jun 2009, 19:02
oh man hab den Fehler gerade selber gefunden
man darf den Channel FMainStream keiner Klasse in die PrvateDeklaration geben, sondern muss in global setzen! Jetzt funktioniert wieder alles
lg und trotzdem danke fürs grübeln^^
  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 09:58 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