Thursday, May 22, 2008

Pro výpis informací o souboru použijeme podobně jako minule opět komponentu Memo, takže i tu je třeba umístit na formulář.
Samotné zpracování načtených informací a jejich zobrazení budeme provádět v události OnClick komponenty FileListBox.
procedure TForm1.FileListBox1Click(Sender: TObject);
var
soubor: MPEG_Header;
f: file;
hlavicka: header_type;

begin
try
Assignfile(f, Filelistbox1.Filename);
Reset(f, 1);
blockread(f, hlavicka, SizeOf(hlavicka));
if not (hlavicka[0] <> 255) or ((hlavicka[1] or $1F) <> 255) then
begin
if ((hlavicka[1] and 16) shr 4) = 0 then soubor.version := 2
else soubor.version := (hlavicka[1] and 8) shr 3;
soubor.layer := 4 - ((hlavicka[1] and 6) shr 1);
soubor.protect := hlavicka[1] and 1;
soubor.bitrate := (hlavicka[2] and 240) shr 4;
soubor.samplerate := (hlavicka[2] and 12) shr 2;
soubor.padding := (hlavicka[2] and 2) shr 1;
soubor.extension := (hlavicka[2] and 1);
soubor.channelmode := (hlavicka[3] and 192) shr 6;
soubor.modeextension := (hlavicka[3] and 48) shr 4;
soubor.copyright := (hlavicka[3] and 8) shr 3;
soubor.original := (hlavicka[3] and 4) shr 2;
soubor.emphasis := (hlavicka[3] and 3);

Memo1.Clear;
Memo1.Lines.Add('MPEG ' + MPEG_version[soubor.version] + ' Layer ' + MPEG_layer[soubor.layer]);
Memo1.Lines.Add(IntToStr(MPEG_bitrates[soubor.version, soubor.layer-1, soubor.bitrate]) + ' kbps');
Memo1.Lines.Add(IntToStr(MPEG_frequencies[soubor.version, soubor.samplerate]) + ' Hz');
Memo1.Lines.Add(MPEG_channel[soubor.channelmode]);
Memo1.Lines.Add('Private : ' + MPEG_extension[soubor.extension]);
Memo1.Lines.Add('CRCs : ' + MPEG_protection[soubor.protect]);
Memo1.Lines.Add('Copyrighted : ' + MPEG_copyright[soubor.copyright]);
Memo1.Lines.Add('Original : ' + MPEG_original[soubor.original]);
Memo1.Lines.Add('Emphasis : ' + MPEG_emphasis[soubor.emphasis]);
end
else Memo1.Lines.Add('Chyba !!!!!');
except
end;
end;
Toto je tedy zhruba základ toho, co lze ze souboru MPEG vyčíst a co je asi pro běžného uživatele nejdůležitější. Pokud by vás zajímaly další informace, které se dají z MPEG souboru "vyždímat", odkáži vás pouze na internet jako zdroj informací. Nebudu vás směrovat na konkrétní stránku, aby to nedopadlo jako minule, ale tentokrát již třeba v době čtení tohoto článku bude www.id3.org fungovat, takže to zkuste například tam.