Как я могу реализовать теги IDv3 в программе Qt?

Я только что сделал звуковой проигрыватель qt, он может воспроизводить mp3 и другие типы аудио, но я хочу сделать его более полезным для чтения названия треков и, возможно, текста песни, в скором будущем. На данный момент приложение отображает только имя файла.

Какая библиотека должна быть реализована? Я нашел несколько библиотек, но они устарели и больше не поддерживаются

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);
}
}
1

Другие решения

В Qt нет читателя ID3. Ты можешь попробовать Это.

1

По вопросам рекламы [email protected]