HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

WAV fájl információk lekérdezése


Példaprogram letöltése

7644 bájt

Egy WAV fájl több tulajdonsággal rendelkezik. A mellékelt példában egy olyan komponenst készítünk, amely ezeket az információkat beolvassa, és property-ken keresztül elérhetővé teszi.
A mellékelt példaprogram megnyitása előtt a WaveInfo.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A komponens a FileName property-ben megadott WAV fájl tulajdonságait olvassa be, melyeket különböző property-ken keresztül érhetünk el. A PCMFormat egy logikai típusú property, amely a fájl formátumát tartalmazza. Ha ez megegyezik a „hivatalos” formátummal, akkor a property értéke igaz. A Channels property-ből megtudjuk, hogy a fájl mono (1 csatornás), vagy stereo (két csatornás). A SampleRate a mintavételezési frekvenciát adja meg. Ez lehet 8000, 11025, 22050, és 44100 Hz. Az AvgBytesPerSec egy átlagos érték, amely a másodpercenként beolvasott (lejátszott) bájtok számát adja meg. A hangot alkotó értékek megadhatók 8 és 16 biten is. Ezt olvashatjuk ki a BitsPerSample property-ből.

Az adatok beolvasása a Refresh eljárásban történik. A fájlt egy TFileStream típusú objektumon keresztül fogjuk kezelni. Az információk beolvasásához ismerni kell a WAV fájl fejlécének szerkezetét, illetve az adatok pontos pozícióját.
A fájl első négy bájtja a „RIFF” szót tartalmazza (Resource Interchange File Format). Ezután a fájl méretét tartalmazó négy bájt következik (a fájl méretéből levonva az első 8 bájt). Ezzel nem foglalkozunk. A következő négy bájt a „WAVE” azonosító, közvetlenül utána pedig az „fmt” következik. Fontos a kis- és nagybetűk közötti különbség. Az „fmt” betűk után még egy szóköz karakter is jön, így ez is 4 bájt hosszú. Ha ezeket mind sikerült azonosítani, akkor most már biztosak lehetünk benne, hogy egy WAV fájllal van dolgunk. A fejléc tartalmaz egy TWaveFormat vagy TWaveFormatEx típusú rekordot. Ez a rekord tartalmazza a számunkra fontos információkat, ezért létrehozunk egy TWaveFormatEx típusú változót, amiben beolvassuk ezeket. A fájlban a következő 4 bájt ennek a rekordnak a mérete. Ellenőrizzük, hogy ez lehetőleg ne legyen nagyobb, mint a rekord típus (TWaveFormatEx) mérete és egyben beolvassuk az egész rekordot.
Ezután már csak ki kell olvasni a rekordból az adatokat, és készen is vagyunk.



Cikksorozat

#IDKategóriaCikk címeSorozat
1166DelphiOsztály hierarchia lekérdezése1. rész
1180DelphiOsztály hierarchia lekérdezése2. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 562. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |