gpt4 book ai didi

c++ - 使用 Qt 通过 TagLib 获取 mp3 封面艺术

转载 作者:行者123 更新时间:2023-11-30 05:45:50 24 4
gpt4 key购买 nike

我正在为我在大学的类(class)项目制作一个音频播放器。我是一年级学生,所以我不是专业程序员。

我正在使用 Qt 5.4 和 QtCreator 3.3.1。我已经包含了 bass.dll 和 TagLib 库来处理音频文件。我想做的是获取歌曲的封面艺术并将其传递给播放器 GUI 上的 QLabel(或任何其他小部件,如果更方便的话)。我还没有真正弄清楚该怎么做。我一直在寻找例子,但我总是以错误或错误的例子告终。以下是我尝试使用的最后一个代码。

TagLib::MPEG::File file(reinterpret_cast<const wchar_t*>(curSong->path.constData()));
TagLib::ID3v2::Tag *m_tag = file.ID3v2Tag(true);
TagLib::ID3v2::FrameList frameList = m_tag->frameList("APIC");
if(frameList.isEmpty()) {
return QImage();
}

TagLib::ID3v2::AttachedPictureFrame *coverImg = static_cast<TagLib::ID3v2::AttachedPictureFrame *>(frameList.front());

QImage coverQImg;
coverQImg.loadFromData((const uchar *) coverImg->picture().data(), coverImg->picture().size());

return coverQImg;

这个对我不起作用,因为它会导致错误,例如

C:\Qt\Projects\audioPlayer\mainwindow.cpp:553: error: undefined reference to `TagLib::List<TagLib::ID3v2::Frame*>::List(TagLib::List<TagLib::ID3v2::Frame*> const&)'

我想我搞砸了库,但我确定我已经包含了 id3v2frame.h 和 id3v2tag.h

最佳答案

不确定您在哪里找到 id3v3frame.h(最新版本随 id3v2frame.h 一起提供)但是 TagLib::ID3v2::FrameListid3v2tag.h 中声明。

关于c++ - 使用 Qt 通过 TagLib 获取 mp3 封面艺术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29215507/

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