Вверх ↑
Ответов: 232
Рейтинг: 6
#1: 2008-06-16 18:05:27 ЛС | профиль | цитата
code_9232.txt


Собственно вот, при этом поток можно получить скачивая HTTP_Get'ом ну и собственно вот по ID3Tags:



{ 
Byte 1-3 = ID 'TAG'
Byte 4-33 = Titel / Title
Byte 34-63 = Artist
Byte 64-93 = Album
Byte 94-97 = Jahr / Year
Byte 98-127 = Kommentar / Comment
Byte 128 = Genre
}



{ **** UBPFD *********** by delphibase.endimus.com ****
>> Получение MP3 тэга

Функция получает ID3v1 тэг из указанного mp3-файла.

Зависимости: uses System :)
Автор: Victor, zazoo@ukr.net, ICQ:149676405, Киев
Copyright: Собственное написание
Дата: 06 мая 2002 г.
***************************************************** }

type
TMP3Tag = record
FileName, Title, Artist, Album, Year, Comment: string;
end;

function GetMP3Tag(fn: string): TMP3Tag;
var
tag: array[0..127] of char;
f: file;
i: byte;
s: string;

procedure DelSpace(var s: string);
begin // Удаляет пробелы и символы
// #0 в конце строки.
if length(s) = 0 then
exit;
while s[length(s)] in [' ', #0] do
begin
delete(s, length(s), 1);
if s = '' then
break;
end;
end;

begin
result.FileName := fn;
result.Title := '';
result.Artist := '';
result.Album := '';
result.Year := '';
result.Comment := '';

AssignFile(F, fn); // Открываем файл
{$I-} // с проверкой его существования :)
Reset(F, 1);
Seek(F, FileSize(F) - 128); // Читаем тэг - последние 128 байт
BlockRead(f, tag, 128);
CloseFile(F);
{$I+}

if IOResult <> 0 then
begin
exit;
end;

s := '';
for i := 0 to 127 do
s := s + tag[i];

if copy(s, 1, 3) = 'TAG' then // В файле есть тэг - разбираем его
begin
result.Title := copy(s, 4, 30);
DelSpace(result.title);
result.Artist := copy(s, 34, 30);
DelSpace(result.artist);
result.Album := copy(s, 64, 30);
DelSpace(result.album);
result.Year := copy(s, 94, 4);
DelSpace(result.year);
result.Comment := copy(s, 98, 30);
DelSpace(result.comment);
end;
end;
Пример использования:

var
Tag: TMP3Tag;
begin
if OpenDialog1.Execute then
Tag := GetMP3Tag(OpenDialog1.FileName);
end;
------------ Дoбавленo:

НУ короче я так понимаю затянулось наверно ? )
------------ Дoбавленo:

[b]Dilmachar *WINAPI BASS_StreamGetTags(
HSTREAM handle,
DWORD tags[/b], ну всетаки поясни плизз, охото же уже его наконец)
карма: 0

0
файлы: 1code_9232.txt [1.5KB] [359]