![]() |
Re: FFT + Bassdllplayer
es ist die zeile:
Delphi-Quellcode:
Data[i] := Data[i] * ln(i + 1) * (Image1.Height)*2;
|
Re: FFT + Bassdllplayer
Entferne mal bitte dieses unsinnige exit.
Delphi-Quellcode:
function TBassPlayer.getfftdata: TFFTData;
begin if status = sndPLAYING then begin if not (BASS_ChannelGetData(Channel, @Result, BASS_DATA_FFT4096) = 2048) then ZeroMemory(@Result, SizeOf(Result)); end else ZeroMemory(@Result, SizeOf(Result)); end; |
Re: FFT + Bassdllplayer
funktionieren tut es leider immer noch nicht :(
|
Re: FFT + Bassdllplayer
Was heisst funktioniert nicht? Kommt immer noch eine Access Violation oder bekommst du keine Ausgabe?
|
Re: FFT + Bassdllplayer
ich bekomme das CPU Fenster mit dem Fehler den ich oben schon gepostet habe.
|
Re: FFT + Bassdllplayer
Welchen Wert hat i zu dem Zeitpunkt wo der Fehler auftritt?
Und am Rande: Dein Array ist 2049 Elemente groß. Eins zu viel. Edit: Die Funktion zum Zeichnen ist im Übrigen auch nicht das gelbe vom Ei. Sie macht 2 Schleifen, wo nur eine nötig wäre, in der man einiges gut zusammenfassen kann.
Delphi-Quellcode:
Achte darauf, dass dein i nacher nicht nur bis 255 geht. Ohne anpassen der Zeichenoperationen wird es ein sehr breites Bild, wenn nicht schon RGB() zerbröselt.
var
temp: Integer; begin data := BassdllPlayer1.GetFFTData; Image1.Canvas.Pen.Width:=1; temp := Image1.Height-5; for i := 0 to 255 do begin Image1.Canvas.pen.color := RGB(255- i, i, i); Image1.Canvas.MoveTo(i+25, temp); Image1.Canvas.LineTo(i+25, temp - round(Data[i] * ln(i+1) * (temp+5) * 2)); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 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