Я пишу музыкальный риппер и занимаюсь этим уже несколько дней. Все работает как надо, кроме установки метаданных. Я загружаю необработанные данные PCM, кодирую в MP3 с помощью ffmpeg.exe, а затем устанавливаю метаданные в файл. Я знаю, что ffmpeg.exe может записывать метаданные, но это не соответствует моим потребностям, так как я не могу написать символ (") при указании метаданных в командной строке. Кроме того, ffmpeg.exe сокращает мои данные до 30 символов, что также моя проблема при использовании TagLib:
TagLib::FileRef f("some_mp3.mp3");
f.tag()->setArtist("Loooooooooooooooooooooooooooooooooooong Artist");
f.tag()->setAlbum("Loooooooooooooooooooooooooooooooooooong Album");
f.tag()->setTitle("Loooooooooooooooooooooooooooooooooooong Title");
f.tag()->setTrack(37);
f.save();
Кажется, этот код использует ID3v1, так как он обрезает длинные строки до 30 символов, да, я читал об этом некоторую Википедию: P Мне нужно, чтобы он использовал ID3v2 для получения длинных данных. Есть предположения?