Die Länge liest er offenbar ein, auch wenn bei WAV Dateien, die unter einer Sekunde Dauer haben, diese auf 0 (!) abgerundet wird.
Und Die Samplerate hat mit der akustischen Schwingungs-Frequenz-Einheit HZ nichts zu tun. Aber die anderen Werte liest er offenbar korrekt ein.
Die Länge wird in dieser
Unit (bzw. für alle Formate dort) in Sekunden ausgegeben. Wenn du genauere Angaben brauchst, musst du die Zeile
fDuration := dataSize DIV BytesPerSec
ersetzen durch
fDuration := Round(1000 * dataSize / BytesPerSec)
. Dann hast du die Länge in Millisekunden. Wenn dich das Round dort auch noch stört, musst du den Typ ändern auf einen Float-Typen.
In welcher Einheit wird denn die Samplerate sonst gemessen, bzw. was ist das dann anderes als die Anzahl der Samples pro Sekunde (oder SamplesPerSec)? Da ist mein Code mit dem von SwissDelphiCenter ja auch identisch, nur lesen die einen Datenblock als Record ein, und ich mache das dort einzeln. Wobei ich diesen Teil damals vermutlich eh aus den alten ATLs (AudioToolsLibrary) übernommen habe. Die waren ganz gut, nur sollte man damit keine ID3Tags
schreiben. Das Konzept nahm nämlich massiven Datenverlust in Kauf - aber das ist ja ein anderes Thema ...
The angels have the phone box.