【发布时间】:2015-03-23 16:34:04
【问题描述】:
我正在为我的大学课程项目制作音频播放器。我是一年级学生,所以我不是专业程序员。
我正在使用 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
【问题讨论】: