Meine Deklaration sieht so aus:
Delphi-Quellcode:
type
TFFTArray = array[0..127] of Single;
function TMediaClass.GetFFTData: TFFTArray;
var
fft : TFFTArray; // get the FFT data
i: Integer;
const
BANDS = 28;
SPECHEIGHT = 25;
SPECWIDTH = 100;
begin
if BASS_ChannelIsActive(fCurrentStream) <> BASS_ACTIVE_STOPPED then
begin
BASS_ChannelGetData(fCurrentStream, @fft, BASS_DATA_FFT256);
Result := fft;
end
else
for I := 0 to Length(fft) - 1 do
fft[i] := 0.1;
end;
Ansonsten prüf mal den Rückgabewert von BASS_ChannelGetData. Wenn der -1 ist, solltest du mal gucken, was BASS_ErrorGetCode zurückwirft.