Нужно достать из аудио файла обложку. Использую Taglib (версия 1.8). Проблемы возникают с
flac.
Насколько понял оптимальный вариант извлечь cover такой:
founded = extractFlac(file);
if(!founded)
{
TagLib::ID3v2::Tag* tag = file->ID3v2Tag();
if(tag)
founded = extractId3(tag);
}
extractFlacbool extractFlac(TagLib::FLAC::File* file)
{
const TagLib::List<TagLib::FLAC::Picture*> picList = file->pictureList();
if(!picList.isEmpty())
{
// Let's grab the first image
TagLib::FLAC::Picture* pic = picList[0];
return saveData(pic->data());
}
return false;
}
extractId3bool extractId3(TagLib::ID3v2::Tag* tag)
{
const TagLib::ID3v2::FrameList& frameList = tag->frameList("APIC");
if(!frameList.isEmpty())
{
// Grab the first image
TagLib::ID3v2::AttachedPictureFrame* frame =
static_cast<TagLib::ID3v2::AttachedPictureFrame*>(frameList.front());
return saveData(frame->picture());
}
return false;
}
Проблема в том, что
const TagLib::List<TagLib::FLAC::Picture*> picList = file->pictureList();
picList всегда пуст, а ID3v2 отсутствует.
Смотрел в баг-трекер проекта — вроде как такого бага нету (Windows 7, 32-bit)
или, если это не баг, подскажите как корректно извлечь cover.
Заранее спасибо