我使用Ming成功编译了taglib 1.8,然后将其集成到Qt项目中。目的是从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 中的一个错误,有意义吗?欢迎任何想法或解释,提前谢谢。
您可以在此处下载项目
我正在用法语写一个关于编译和集成到Qt项目中的细节的教程,如果有感兴趣的人,我会用英语写一个。
好吧,最后不是XP或Seven的问题,而是关于计算机上安装的编解码器。
有一个简单的解决方案,您无需从mp3文件中删除ID3标签即可使其被Phonon读取,您只需安装K-Lite编解码器即可。
解释:Phonon 后端使用 Windows 上的 DirectShow 来读取 mp3 文件。K-Lite编解码器包是DirectShow过滤器,VFW/ACM编解码器和工具的集合。编解码器和 DirectShow 筛选器用于编码和解码音频和视频格式。
安装K-Lite解决了Phonon与一些mp3文件的问题。
我希望这将拯救那些在Windows上患有mp3文件的声子的人。