0

我使用 Mingw 成功编译了 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 项目中的细节的教程,如果有兴趣的人,我会用英文写一篇。

4

1 回答 1

0

好吧,最后不是 XP 或 7 的问题,而是关于您计算机上安装的编解码器的问题。

有一个简单的解决方案,您无需从 mp3 文件中删除 ID3 标记即可让 Phonon 读取它们,您只需安装 K-Lite Codecs。

解释 : Phonon 后端使用 Windows 上的 DirectShow 来读取 mp3 文件。K-Lite 编解码器包是 DirectShow 过滤器、VFW/ACM 编解码器和工具的集合。编码和解码音频和视频格式需要编解码器和 DirectShow 过滤器。

安装 K-Lite 解决了 Phonon 的一些 mp3 文件问题。

我希望这将拯救那些在 Windows 上使用 mp3 文件遭受声子困扰的人。

于 2012-10-19T10:14:02.957 回答