Вверх ↑
Ответов: 497
Рейтинг: 16
#1: 2017-08-21 16:13:41 ЛС | профиль | цитата
AIMP предоставляет доступ внешним приложениям к информации о проигрываемом файле посредством файла проецируемого в память.

Файл имеет имя AIMPRemoteAccessClass и фиксированный размер AIMPRemoteAccessMapFileSize.

Файл хранит содержимое структуры TAIMPRemoteFileInfo, после которой следует массив юникодных символов (UTF16), содержащий в себе информацию о композиции: название альбома, имя исполнителя, дата выпуска альбома, имя файла, жанр композиции, название композиции.

Длина каждой из составляющих указана в соответствующих свойствах структуры TAIMPRemoteFileInfo, например: <TAIMPRemoteFileInfo>.AlbumLength, <TAIMPRemoteFileInfo>.GenreLength и т.п.

--- Добавлено в 2017-08-21 16:15:29

2x

// Load info about playable file from shared memory-mapped file
AFile := OpenFileMapping(FILE_MAP_READ, True, AIMPRemoteAccessClass);
try
AInfo := MapViewOfFile(AFile, FILE_MAP_READ, 0, 0, AIMPRemoteAccessMapFileSize);
if AInfo <> nil then
try
if AInfo <> nil then
begin
ABuffer := Pointer(NativeUInt(AInfo) + SizeOf(TAIMPRemoteFileInfo));

// Extract data from the buffer
AAlbum := ExtractString(ABuffer, AInfo^.AlbumLength);
AArtist := ExtractString(ABuffer, AInfo^.ArtistLength);
ADate := ExtractString(ABuffer, AInfo^.DateLength);
AFileName := ExtractString(ABuffer, AInfo^.FileNameLength);
AGenre := ExtractString(ABuffer, AInfo^.GenreLength);
ATitle := ExtractString(ABuffer, AInfo^.TitleLength);

// Show the information
lbTitle.Caption := ATitle;
lbDetails.Caption := AAlbum + #13#10 + AArtist + #13#10 + ADate + #13#10 + AGenre + #13#10 +
Format('%d Hz, %d kbps, %d chans', [AInfo^.SampleRate, AInfo^.BitRate, AInfo^.Channels]) + #13#10 +
Format('%d seconds, %d bytes', [AInfo^.Duration div 1000, AInfo^.FileSize]);
end;
finally
UnmapViewOfFile(AInfo);
end;
finally
CloseHandle(AFile);
end;

--- Добавлено в 2017-08-21 16:17:20

dimosikILA писал(а):
Может у какого завались эти компоненты (их там 3)?

да недавно перезаливал на первой странице фалов
карма: 1
        ]  
0
Редактировалось 2 раз(а), последний 2017-08-21 16:17:20