Thema: Delphi Visualiesirung

Einzelnen Beitrag anzeigen

Benutzerbild von Desmulator
Desmulator

Registriert seit: 3. Mai 2007
Ort: Bonn
169 Beiträge
 
#6

Re: Visualiesirung

  Alt 17. Feb 2008, 13:45
Delphi-Quellcode:
    if WaveEx.nChannels = Mono then begin
      //Position ermitteln
      Stream.Position := Position.sample * ( WaveEx.wBitsPerSample div 8 * WaveEx.nBlockAlign ) + AudioStart;
      //Einlesen ( ein Sample )
      Stream.Read(Visual.Center,2);
      //Amplitude anpassen Maximal 300 Pixel und Zentriren
      Amplitude := Trunc(Power( 2 ,WaveEx.wBitsPerSample)); //Maximum
      Amplitude := round(( Visual.Center / Amplitude) * CricleSize); //Relativ zu 300
      Amplitude := Amplitude - ( CricleSize div 2 );

      //Wenn Unter 0
      if Amplitude < 0 then
        Amplitude := 0;//Amplitude * -1; // Positiv machen
      //Position berechnen
      DrawXYPos := 300; //Position
      DrawXYPos := DrawXYPos - round(Amplitude / 2);
      //Kreiszeichnen
      VisualWnd.Canvas.Pen.Color := RGB(Random(255),Random(255),Random(255));
      VisualWnd.Canvas.Ellipse(bounds(DrawXYPos,DrawXYPos,Amplitude,Amplitude));

    end;
Wenn ich es nun 8bit- samples abspielen lasse, funktiert es, jedoch macht er bei 16bit einfach irgendwas und hängt sich schließlich auf... wo ist der fehler?
Lars
  Mit Zitat antworten Zitat