Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Sound Visualisierung (https://www.delphipraxis.net/83427-sound-visualisierung.html)

pacman1986 6. Jan 2007 15:05

Re: Sound Visualisierung
 
damit will Gausi sagen das du Get_VULevel statt VULevel weil VULevel bei dir nicht existiert!

ebber 6. Jan 2007 15:20

Re: Sound Visualisierung
 
Ich hoffe ich bekomms heut noch hin, aber ich glaube ich bin einfach n bissel unterbelichtet.

Also ich hab das jetzt alles verbessert und eingebaut hoffe ich :
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bass, ExtCtrls, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    ProgressBars_L: TProgressBar;
    ProgressBars_R: TProgressBar;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Play_Channel : DWORD;


implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
begin
Bass_init(-1,44100,0,handle,0);
end;


Procedure PlayFile(Filename : String);
begin
  BASS_StreamFree(Play_Channel);
  Play_Channel:= BASS_StreamCreateFile(false, PChar(Filename), 0, 0, BASS_STREAM_AUTOFREE) ;
  BASS_ChannelPlay(Play_Channel, true);
End;


Procedure Get_VULevel(var L, R : Integer);
var VUCH : DWORD; L_VU, R_VU : integer;
begin
  VUCH := BASS_ChannelGetLevel(Play_Channel);  //from 0 (silent) to 32768 (max)
   L_VU := LOWORD(VUCH);
   R_VU := HIWORD(VUCH);
  if (BASS_ChannelIsActive(Play_Channel) = BASS_ACTIVE_PLAYING) then
   begin
    L:= L_VU;
    R:= R_VU;
   end else
  begin
    L:= 0;
    R:= 0;
  end;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
var L, R : integer;
begin

  Get_VULevel(L,R);

  ProgressBars_L.Position:=  R;
  ProgressBars_R.Position := L;

end;

end.
Nur geht es nicht.
Der Wert bleibt immer auf 0.

Und das ist auch klar ?
Zitat:

Und falls meine Frage unverständlich gestellt war: Mein Programm soll nichts abspielen sondern, die Progressbars sollen den Sound anzeigen der gerade aus den Lautsprechern kommt.
:pale: :pale:

Gausi 6. Jan 2007 15:26

Re: Sound Visualisierung
 
Zitat:

Zitat von ebber
Und falls meine Frage unverständlich gestellt war: Mein Programm soll nichts abspielen sondern, die Progressbars sollen den Sound anzeigen der gerade aus den Lautsprechern kommt.

Um ehrlich zu sein, hab ich das noch nicht gelesen. Da hab ich keine Ahnung, wie das funktionieren soll. Dieser Ansatz hier geht auf jeden Fall nicht, da dieses GetLevel immer nur mit dem jeweiligen Channel funktioniert, den die bass grade abspielt.

Edit: Und dass das bei dir immer 0 ist, liegt wohl daran, dass du nirgendwo was abspielst - das hatte ich bei mir natürlich auch per Buttonklick erledigt. Ich nahm an, dass das hier nur Ausschnitte aus deinem Programm sind.

ebber 6. Jan 2007 15:42

Re: Sound Visualisierung
 
Tut mir Leid dass ich meine Frage am Anfang ein bisschen unverständlich formuliert habe.

Das ist eigentlich schon nur ein Ausschnitt. Der Rest des Programms hat aber eigentlich nichts damit zu tun.

Wenn das dann jemand anderes weis pls help.

MfG

Wishmaster 6. Jan 2007 21:19

Re: Sound Visualisierung
 
Hi.

Zitat:

Und falls meine Frage unverständlich gestellt war: Mein Programm soll nichts abspielen sondern, die Progressbars sollen den Sound anzeigen der gerade aus den Lautsprechern kommt.
Warum sagst du das nicht gleich?


Ich hatte da schonmall ne demo (LiveTest) geschrieben, das ding sollte dir weiterhelfen

ebber 7. Jan 2007 13:34

Re: Sound Visualisierung
 
Danke an alle für ihre Geduld.

Ich habs endlich hinbekommen.:-D

MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 Uhr.
Seite 2 von 2     12   

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