【发布时间】:2011-10-26 03:48:36
【问题描述】:
所以,我的最终游戏是从我的音频文件中获取专辑封面。我正在使用 taglib 和 c++。我找到了有关如何提取嵌入图像数据的信息,但似乎 windows 媒体播放器没有嵌入图像本身。相反,它会保存一个名为 AlbumArt_{E3208100-4FAA-4030-BB9D-6DA5F9D93D18}_Large.jpg 的 jpg。显然它使用的是 guid,我相信它保存在 PRIV 标签中。我对你们的问题是我怎么能得到它?我认为这样的事情可能会起作用:
ID3v2::PrivateFrame* privFrame = static_cast<ID3v2::PrivateFrame*>(*privIter);
if(privFrame != NULL)
{
std::string owner = privFrame->owner().toCString();
if (owner == "WM/WMCollectionID" || owner == "WM/WMCollectionGroupID")
{
const char* data = privFrame->render().data();
GUID guid;
memcpy(&guid.Data1, data, sizeof(long));
}
}
但数据似乎没有任何用处。有什么想法吗?
【问题讨论】:
-
所以,我没有得到任何点击,我也没有在网上找到任何好的资源,所以我正在考虑使用 good'ol fstream 手动读取数据。有人知道这样做的任何资源吗?我需要首先验证文件是否包含 id3v2 标签,然后阅读每个标签,直到找到我要查找的标签。有关规范的详细信息以及任何经验教训将非常有帮助。
-
aaargh,为什么要制作专辑封面这么难?!我得到的印象是大多数应用程序只是将图像嵌入到音频文件中,除了 wmp。这是一个准确的评估吗?