如何在Qt程序中实现IDv3标签?

时间:2017-04-03 11:03:05

标签: c++ qt audio-player id3

我刚制作了一个qt声音播放器,它可以播放mp3和其他类型的音频,但我希望在短时间内让它更有用于阅读曲目名称和歌曲文本。目前,应用程序仅显示文件的名称。

应该实施哪些库?我发现了一些库,但它们已过时且不再受支持

2 个答案:

答案 0 :(得分:1)

Qt中没有ID3阅读器。您可以尝试it

答案 1 :(得分:1)

有几个不同的库用于读取声音文件的信息,您可以尝试id3lib

如果您对C ++没问题,代码很容易阅读:

#include <id3/tag.h>

首先,您需要知道图书馆可以提供给您的可能信息:

void ShowKnownFrameInfo() {
     ID3_FrameInfo myFrameInfo;
    for (int cur = ID3FID_NOFRAME+1; cur < myFrameInfo.MaxFrameID(); cur ++)
    { 
     cout << "Short ID: " << myFrameInfo.ShortName(ID3_FrameID(cur)) <<
         " Long ID: " << myFrameInfo.LongName(ID3_FrameID(cur)) <<
         " Desription: " << myFrameInfo.Description(ID3_FrameID(cur)) << endl;
    }
 }

使用以下代码中的信息来访问信息并在任何地方使用

void readTags(const std::string& musicFile) {
    ID3_Tag myTag(musicFile);
    QScopedPtr<ID3_Tag::Iterator> iter(myTag.CreateIterator());
    ID3_Frame* myFrame = NULL;
    while (NULL != (myFrame = iter->GetNext()))
    {
        myFrame->Get("Key", 1024);
    }
}
相关问题