2011-07-01 69 views
2

作爲一個側面/有趣的項目,我正在構建一個音頻播放器(Qt應用程序),其中一個障礙是顯示嵌入式封面藝術。隨着* .mp3文件這最終不是太大的問題,主要是由於所提供的示例here來自MPEG 4文件的C++ Taglib封面藝術

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*變量。