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?