Я пишу музыкальный риппер и занимаюсь этим уже несколько дней.Все работает как надо, кроме установки метаданных.Я загружаю необработанные данные 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 символов, да, я читал википедию об этом: PI нужно, чтобы он использовал ID3v2дать длинные данные. Есть мысли?