Tuesday, March 25, 2008

Tipy a triky v Delphi

Tipy a triky v Delphi

Tématem dnešního dílu budou soubory WAVE. Nebudeme je sice přehrávat, to není až zas tak velký problém, ale naučíme se zjišťovat o nich různé užitečné informace jako je typ, délka, frekvence a mnoho dalších.
Soubory WAVE jsou alespoň na platformě Windows oblíbeným a celkem dlouhá léta standardním formátem pro ukládání zvukových dat. Hudbu máte sice pravděpodobně uloženu v jiném formátu kvůli úspoře místa, ale například pro nahrávání zvuků (hudby) z nějakého externího zdroje a následnou editaci je to celkem použitelný formát, který zvládá snad každý zvukový editor a můžete tak bez ztráty kvality zvuky upravovat. Až poté je teprve převedete do nějakého úspornějšího formátu (MP3, WMA a podobně). Rovněž rozličné systémové zvuky či zvuky v aplikacích jsou uloženy v tomto formátu. Proto jistě nebude na škodu, když si teď ukážeme, jak získat z hlavičky souboru některé zajímavé údaje a vlastnosti souboru.
Nejprve si vytvoříme datovou strukturu, do které tyto informace z hlavičky načteme. Můžeme k tomu využít například záznam (record) a ten bude vypadat takto:
.
.
type
WAVrecord = record
RIFFHeader: array [1..4] of Char;
FileSize: Integer;
WAVEHeader: array [1..4] of Char;
FormatHeader: array [1..4] of Char;
FormatSize: Integer;
FormatID: Word;
ChannelNumber: Word;
SampleRate: Integer;
BytesPerSecond: Integer;
BlockAlign: Word;
BitsPerSample: Word;
DataHeader: array [1..4] of Char;
SampleNumber: Integer;
end;
.

Labels: