@Door

Taglib. Обложка flac файла?

Нужно достать из аудио файла обложку. Использую Taglib (версия 1.8). Проблемы возникают с flac.

Насколько понял оптимальный вариант извлечь cover такой:
founded = extractFlac(file);

        if(!founded)
        {
            TagLib::ID3v2::Tag* tag = file->ID3v2Tag();
            if(tag)
                founded  = extractId3(tag);
        }


extractFlac
bool 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;
}


extractId3
bool 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.


Заранее спасибо
  • Вопрос задан
  • 3295 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы