如何在 Qt 程序中实现 IDv3 标签?
How can I implement IDv3 tags in a Qt Program?
我刚刚制作了一个 qt 声音播放器,它可以播放 mp3 和其他类型的音频,但我想让它在不久的将来更有助于阅读曲目名称和歌曲的文本。目前应用程序仅显示文件名。
应该实现什么库?我找到了一些库,但它们已过时且不再受支持
Qt 中没有 ID3 reader。你可以试试 it.
有几个不同的库可以读取声音文件的信息,你可以试试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);
}
}
我刚刚制作了一个 qt 声音播放器,它可以播放 mp3 和其他类型的音频,但我想让它在不久的将来更有助于阅读曲目名称和歌曲的文本。目前应用程序仅显示文件名。
应该实现什么库?我找到了一些库,但它们已过时且不再受支持
Qt 中没有 ID3 reader。你可以试试 it.
有几个不同的库可以读取声音文件的信息,你可以试试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);
}
}