Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit WAV Länge/Header (https://www.delphipraxis.net/74530-problem-mit-wav-laenge-header.html)

sonicfire 4. Aug 2006 16:45


Problem mit WAV Länge/Header
 
Hallo allerseits!

Es "geht sich um folgendes" *G* :

Ich haber hier also zwei WAV Audio-Puffer, einer wird mit Daten von einer WAV-Datei befüllt, der andere
dient der Modifikation (in diesem Fall das hin- und herkopieren):
Delphi-Quellcode:
WavEnd := High(Wavbuffer) div 2;
Delphi-Quellcode:
 
       begin
          WavAdd := High(Wavbuffer);
          setlength(TempWavbuffer, WavAdd+WavEnd);

          // copy the whole main buffer into temp buffer
          for i := Low(TempWavbuffer) to WavAdd do
          begin
                TempWavbuffer[i] := Wavbuffer[i];
          end;

          // append 50% of main buffer at end
          for i := Low(TempWavbuffer) to WavEnd do
          begin
                TempWavbuffer[WavAdd+i] := Wavbuffer[WavEnd+i];
          end;
       end
Ich versuche also , 50% Prozent (Offset ebenfalls 50%) vom Wavbuffer am Ende des
Temp-Buffers anzufügen. Erst kopiere ich den Inhalt vom eigentlichen Wavbuffer komplett in den
TempWavBuffer. Zuvor habe ich die Größe so gesetzt das er den gesamten Wavbuffer + 50% von sich selbst extra
speichern kann.

Nur habe ich das dumpfe Gefühl das dies so noch nicht ganz richtig ist. Das kopieren SCHEINT zu
funktionieren, aber dazwischen gibts Knackser und Lücken, oder es crashed.
Nun bin ich mir auch nicht sicher, ob das nicht evtl.mit dem WAV-Header zusammenhängt, bei dem
ich anschließend die Größe der DataBytes verändert habe:
(Damits auch korrekt ausgelesen wird)
Delphi-Quellcode:
Header.DataBytes := Header.DataBytes + Header.DataBytes div 2;
Könnte es sein das ich hier irgendwie auf dem Holzweg bin? :oops:

sonicfire 4. Aug 2006 17:37

Re: Problem mit WAV Länge/Header
 
...das merkwürzige ist : Hab mal mit einem HEX-Editor in das WAV geschaut ; die Größenangabe bei DataBytes ist sogar kleiner(???) als wenn ich den Eintrag einfach unverändert lasse?

Quasi:

Delphi-Quellcode:
Header.DataBytes := (Header.DataBytes div 2) + Header.DataBytes;
Ergebnis z.b. 128950

Header.DataBytes := Header.DataBytes;
Ergebnis z.b. 134175
:shock: :wiejetzt:

sonicfire 4. Aug 2006 20:28

Re: Problem mit WAV Länge/Header
 
Hat das irgendwas mit den Zuweisungen zu tun?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz