У меня небольшая проблема!Мне нужно чтобы на TLabel отображалось скоко клилобит в секунду данный файл!(TMediaPlayer)!
У тебя какой формат файла? Если mp3, то я где-то уже выкладывал, как считать содержимое его тегов, поищи по форуму. Если другой - говори, какой, придется искать, где именно хранится эта информация...
Мне нужно чтобы универсально к любому формату!(Ну кроме там таких как 3GP,AMR и других мобильных форматов)
Извини "гость" это я!
Уууу... Тогда я - пас. Это тебе не Compound Files, у которых это хранится в альтернативном потоке данных, и не MP3, где все хранится в ELIF тегах. "Универсально" - понятие растяжимое... Очень растяжимое. И малореальное...
Мне нужно MP3 и WAV!
// В s передается имя файла MP3
procedure TForm1.ReadMp3Info(const s: string);
var
f: File;
buffer: array[0 .. 31] of byte;
Lay, mpeg, btr: byte;
const
bitRateTable: array[0 .. 15, 0 .. 4] of integer = (
( 0, 0, 0, 0, 0 ),
( 32000, 32000, 32000, 32000, 8000 ),
( 64000, 48000, 40000, 48000, 16000 ),
( 96000, 56000, 48000, 56000, 24000 ),
( 128000, 64000, 56000, 64000, 32000 ),
( 160000, 80000, 64000, 80000, 40000 ),
( 192000, 96000, 80000, 96000, 48000 ),
( 224000, 112000, 96000, 112000, 56000 ),
( 256000, 128000, 112000, 128000, 64000 ),
( 288000, 160000, 128000, 144000, 80000 ),
( 320000, 192000, 160000, 160000, 96000 ),
( 352000, 224000, 192000, 176000, 112000 ),
( 384000, 256000, 224000, 192000, 128000 ),
( 416000, 320000, 256000, 224000, 144000 ),
( 448000, 384000, 320000, 256000, 160000 ),
( -1, -1, -1, -1, -1 )
);
begin
assignfile(f, s);
reset(f, 1);
blockread(f, buffer[0], 32);
Lay := (buffer[1] shr 1) and 3;
mpeg := (buffer[1] shr 3) and 3;
case mpeg of
// mpg-1.0
3: case lay of
3: mpeg := 0;
2: mpeg := 1;
1: mpeg := 2;
end;
// mpg-2.0
0, 2:
case lay of
3: mpeg := 3;
2, 1: mpeg := 4;
end;
end;
btr := (buffer[2] shr 4) and $0F;
// Записываем BitRate в Edit
edit1.Text := 'Bitrate: ' + inttostr(bitRateTable[btr, mpeg]);
closefile(f);
end;