![]() |
Re: 'Visualissation'
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich wollte mich erstmal nicht mit der bass.dll rumschlagen und habe zum testen den 'bassdllplayer' benutzt. Der Fehler tritt erst auf, wenn ich auf den 'open-button' klicke. Unten im Anhang der gesamte Code ... . Erstmal danke für die vielen antworten ... . |
Re: 'Visualissation'
:pale: Erschrick mich nich so, TBassDLLPlayer macht Fehler ? :mrgreen:
Delphi-Quellcode:
Oder so....
procedure TForm1.Timer2Timer(Sender: TObject);
var data: TFFTData; begin IF BassdllPlayer1.status = sndPLAYING then begin data := BassdllPlayer1.GetFFTData; if Data[1] > max then begin Max := Data[1]; p.Width := Round(max); end; // <--- da wäre es besser end; if Data[1] > max then // <--- ab hier Fehler begin Max := Data[1]; ProgressBar1.Max := Round(max); end; ProgressBar1.Position := Round(Data[1]); end;
Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
var data: TFFTData; begin if BassdllPlayer1.status <> sndPLAYING then exit; data := BassdllPlayer1.GetFFTData; if Data[1] > max then begin Max := Data[1]; p.Width := Round(max); end; if Data[1] > max then begin Max := Data[1]; ProgressBar1.Max := Round(max); end; ProgressBar1.Position := Round(Data[1]); end; |
Re: 'Visualissation'
Zitat:
schon das angeschaut?
Delphi-Quellcode:
Edit. hatte da an meine Komponnete gedacht.
property RightPeak: dword read getRightPeak; {von 0 bis 32768}
property LeftPeak: dword read getLeftPeak; {von 0 bis 32768} ![]() btw. p ist kein guter Bezeichner für eine Paintbox. Ich würde p immer für einen lokalen Pointer halten. |
Re: 'Visualissation'
Zitat:
|
Re: 'Visualissation'
Ja so ist es. Demo bei TBassDLLPlayer (SimplePlayer 3) mit ProgressBar's.
|
Re: 'Visualissation'
Und jetzt muss ich left und right-peak miteinander verbinden, nur wie mach ich das, + - / * geht natürlich nicht.
|
Re: 'Visualissation'
Verbinden ? Du hast eine Aussteuerung vom linken und vom rechten Kanal, also so zu sagen den linken und den rechten Lautsprecher.
Baue dir eine procedure die zwei Balken zeichnet.
Delphi-Quellcode:
die kannst du dann im Timer aufrufen lassen:
procedure DrawMyBars(LKanal, RKanal: Longword);
begin if BassDLLPlayer1.Status = sndPlaying then begin // alles was in der PaintBox gezeichnet werden soll wenn Player läuft zB.: for i := 0 to LKanal do PaintBoxX.Canvas....odersowas for i := 0 to RKanal do PaintBoxX.Canvas....odersowas end else begin // alles was in der PaintBox gezeichnet werden soll wenn Player auf Stop end; end; (! Setze den Interval des Timers nicht zu klein das gibt event. Probleme)
Delphi-Quellcode:
procedure TFormX.Timer1Timer(Sender: TObject);
begin // Bar's zeichnen DrawMyBars(BassDLLPlayer1.LeftPeak, BassDLLPlayer1.RightPeak); |
Re: 'Visualissation'
Delphi-Quellcode:
Was mach ich bloß immer falsch *heul* ? Egal wie ich den Timer einstelle, die cpu wird immer überfordert.
procedure TForm1.DrawMyBars(LKanal, RKanal: Longword);
var i: integer; begin if BassDLLPlayer1.Status = sndPlaying then begin for i := 0 to LKanal do p.Width := p.Width + 1; // DrawGradient for i := 0 to RKanal do p2.Width := p2.Width + 1; end else begin p.Width := 0; p2.Width := 0; end; end; |
Re: 'Visualissation'
Zitat:
Delphi-Quellcode:
Ich weiß nicht, was p und p2 sein sollen??? Eventuell liegt da auch noch Optimierungsansatz.
inc(p.Width, LKanal + 1); //analog für rechts
//oder (falls Width ein Property ist) p.Width := LKanal + 1 + p.Width; //analog für rechts //edit: schließenden quote-tag ergänzt :oops: |
Re: 'Visualissation'
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:29 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