我使用Mingw成功编译了taglib 1.8,然后将其集成到Qt项目中。 purpuse是从mp3文件中删除ID3标签。
此代码:
void MainWindow::removeTagFromFile(QByteArray &fileContent)
{
TagLib::ByteVector byteVector(fileContent.constData());
TagLib::ID3v2::FrameFactory *frame = TagLib::ID3v2::FrameFactory::instance();
TagLib::IOStream *vectorStream = new TagLib::ByteVectorStream(byteVector);
TagLib::MPEG::File file(vectorStream, frame);
file.strip();
file.save();
}
在XP上编译并正常工作。 在Windows 7上编译并无法正常工作。 将“在XP上编译的.exe”改为7并不能解决问题。
有点奇怪吗?我担心这是Taglib的一个错误,它有意义吗? 任何想法或解释都是受欢迎的, 提前谢谢。
您可以下载项目here
我正在用法语撰写关于编译和集成到Qt项目中的详细信息的教程,如果有兴趣的人,我会用英语写一个。
答案 0 :(得分:0)
好吧,最后这不是XP或Seven的问题,而是关于计算机上安装的编解码器。
有一个简单的解决方案,你不需要从mp3文件中删除ID3标签以使它们被Phonon读取,你只需要安装K-Lite编解码器。
说明: Phonon后端在Windows上使用DirectShow来读取mp3文件。 K-Lite Codec Pack是DirectShow过滤器,VFW / ACM编解码器和工具的集合。编码和解码音频和视频格式需要编解码器和DirectShow过滤器。
安装K-Lite解决了一些mp3文件的Phonon问题。
我希望这能拯救那些在Windows上遭受带有mp3文件的声子的人。