我正在写一个音乐松土器,并且已经有好几天了。除了设置元数据之外,所有事情都应该如此。我正在下载原始PCM数据,使用ffmpeg.exe将其编码为MP3,然后将元数据设置为该文件。我知道ffmpeg.exe可以编写元数据,但它不适合我的需要,因为我不能在命令行中指定元数据时写入字符(“)。另外,ffmpeg.exe将我的数据剪切为最多30个字符,这也是使用标签库时,我的问题:使用TagLib编写ID3v2元数据
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();
看来,因为它作物的长字符串,只是30个字符的代码使用的ID3v1,是的,我也读了一些维基百科上这样的:PI需要使用的ID3v2给长?数据有什么想法
仍将字符串切换为30个字符。任何其他能够使用长字符串设置这四种元数据的库也适用于我,如果没有其他解决方案出现:) – Alex 2011-06-12 11:56:28
我刚发现这两个代码似乎都存储了整个字符串,但Windows资源管理器和我的MP3播放器只显示前30个字符。如果我使用Windows资源管理器设置元数据,它会在我的MP3播放器上显示全长,当然也可以在Windows中显示。所以我想我想在代码中做同样的事情。 – Alex 2011-06-12 12:10:59
Ahh,“Windows资源管理器和Windows Media Player无法处理任何版本的ID3v2版本2.4标签,包括Windows 7/Windows Media Player 12. [5] Windows可以理解ID3v2高达并包括2.3版本”似乎我需要特别是ID3v2.3,对.. – Alex 2011-06-12 12:19:33