SampleRate von .wav-Dateien ermittlen
Übersicht BlitzBasic Codearchiv
BIG BUGBetreff: SampleRate von .wav-Dateien ermittlen |
Do, März 04, 2004 0:35 Antworten mit Zitat |
|
---|---|---|
Hier mal ein kleines Stückchen Code, mit dem man die SampleRate aus Wave-Dateien auslesen kann. Ist nützlich wenn man z.B. mit ChannelPitch arbeitet, aber "User-Sounds" zulassen möchte.
Es werden nur '.wav'-Dateien unterstützt. Habe es mit vielen verschiedenen Dateien ausprobiert und hat überall funktioniert. Da das WAVE-Format aber sehr "breit" definiert ist, kann ich nicht garantieren, dass es immer funktioniert(Wenn euch auffällt, dass was nicht geht bitte gleich hier reinschreiben oder PM. Danke) Code: [AUSKLAPPEN] ;SampleRate einer .wav-Datei bestimmen ;03.03.2004 Robert Hierl(BIG BUG) Datei$ = CommandLine$() While FileType(Datei$) <> 1 Datei$ = Input("Datei: ") Wend Print GetSampleRate(datei$) WaitKey() Function GetSampleRate(file$) ;Kennzeichnung für Formatinfo Local search$ = "fmt " Local fhandle Local fbyte Local hcounter Local ret ;Datei öffnen fhandle = ReadFile(file$) If Not fhandle Return 0 ;Dateizeiger auf Formatinfo setzen While Not Eof(fhandle) fbyte = ReadByte(fhandle) If Chr$(fbyte) = Mid$(search$,hcounter+1,1) hcounter = hcounter + 1 Else hcounter = 0 EndIf If hcounter => Len(search$) Then Exit Wend ;Formatinfos auslesen If Not Eof(fhandle) ReadInt(fhandle) ;ID chunkID ReadInt(fhandle) ;long chunkSize ret=ReadShort(fhandle) ;short wFormatTag ;ReadShort(fhandle) ;unsigned short wChannels ;ReadInt(fhandle) ;unsigned long dwSamplesPerSec ;ReadInt(fhandle) ;unsigned long dwAvgBytesPerSec ;ReadShort(fhandle) ;unsigned short wBlockAlign ;ReadShort(fhandle) ;unsigned short wBitsPerSample; EndIf CloseFile fhandle Return ret End Function |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
Übersicht BlitzBasic Codearchiv
Powered by phpBB © 2001 - 2006, phpBB Group