2011-07-01 13 views
2

私はオーディオプレーヤー(Qtアプリケーション)を構築していますが、難題の1つは埋め込みカバーアートを表示しています。 * .mp3ファイルでは、これは、提供される例に主に感謝here、問題のあまりされていないことになった。C++ Taglib Cover Art from MPEG 4ファイル

しかし
static QImage imageForTag(TagLib::ID3v2::Tag *tag) 
{ 
    TagLib::ID3v2::FrameList l = tag->frameList("APIC"); 

    QImage image; 

    if(l.isEmpty()) 
     return image; 

    TagLib::ID3v2::AttachedPictureFrame *f = 
     static_cast<TagLib::ID3v2::AttachedPictureFrame *>(l.front()); 

    image.loadFromData((const uchar *) f->picture().data(), f->picture().size()); 

    return image; 
} 

、どのように埋め込まれたことができますカバーアートは、MPEG 4ファイル(特に* .M4A)のために抽出されます?ここで

答えて

0

はそれを行う方法です:

TagLib::MP4::File f(file); 
TagLib::MP4::Tag* tag = f.tag(); 
TagLib::MP4::ItemListMap itemsListMap = tag->itemListMap(); 
TagLib::MP4::Item coverItem = itemsListMap["covr"]; 
TagLib::MP4::CoverArtList coverArtList = coverItem.toCoverArtList(); 
if (!coverArtList.isEmpty()) { 
    TagLib::MP4::CoverArt coverArt = coverArtList.front(); 
    image.loadFromData((const uchar *) 
    coverArt.data().data(),coverArt.data().size()); 
} 

imageはQtのQImageクラスからのものであり、 "ファイル" を単にchar*変数です。

関連する問題