gpt4 book ai didi

来自 MPEG 4 文件的 C++ Taglib 封面艺术

转载 作者:太空狗 更新时间:2023-10-29 23:09:08 26 4
gpt4 key购买 nike

作为一个业余/有趣的项目,我正在构建一个音频播放器(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)提取嵌入的封面艺术?

最佳答案

方法如下:

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 类,"file"只是一个 char* 变量。

关于来自 MPEG 4 文件的 C++ Taglib 封面艺术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com