Я пытаюсь использовать API TagLib C++ для чтения метаданных ID3v2 из произвольного аудиофайла. Этот файл не обязательно является файлом .mp3
и может относиться к другим распространенным аудиоформатам. У меня есть следующее:
std::string readId3v2Tag(std::string filePath, std::string tagName) {
// read from file
TagLib::FileRef f(filePath.c_str());
if (!f.isNull() && f.file()) {
// get tags from property map
TagLib::PropertyMap tags = f.file()->properties();
if (tags.find(tag) != tags.end()) {
return std::string(tags[tag][0].toCString());
}
}
}
Однако, когда я ввожу имя кадра ID3v2, он ничего не возвращает. Я считаю, что это связано с тем, что карта f.file()->properties()
содержит формат тегов TagLib. Я должен иметь доступ к кадрам ID3v2 по имени.
Мне сказали использовать класс ID3v2
, однако я не вижу, как получить к нему доступ из файла, и у меня проблемы с чтением документации по API. Кто-нибудь знает как это сделать?