作为一个侧面/有趣的项目,我正在构建一个音频播放器(Qt应用程序),其中一个障碍是显示嵌入式封面艺术。使用* .mp3文件最终不会出现太多问题,主要得益于here提供的示例:
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 :(得分: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
类,&#34;文件&#34;只是一个char*
变量。