【发布时间】:2014-03-19 15:35:06
【问题描述】:
我正在开发一个查看 mp3 文件并检查它是否有 ID3 数据的程序。如果缺少某些数据,它将查询 EchoNest(音乐数据库)以获取更多数据。
我的问题是,当我更新 ID3 标签时,Windows 资源管理器似乎无法识别它(即,当文件位于“详细信息”视图中时,艺术家、标题、专辑列是空白的)。 当我在文件上第二次运行我的程序时,我的程序会找到元数据,就像它最初在包含所有数据的文件中找到的一样。
我正在使用这里的 ID3 标签库: http://javamusictag.sourceforge.net/
我有什么遗漏吗?
public void writeData(boolean pForce)
{
if (mIsUpdated || pForce)
{
try
{
File file = new File(mPath);
RandomAccessFile destFile = new RandomAccessFile(file, "rw");
ID3v1 tag = new ID3v1();
tag.setAlbum(mAlbum);
tag.setArtist(mArtist);
tag.setTitle(mTitle);
tag.write(destFile);
}
catch (FileNotFoundException ex)
{
System.out.println("No File Found At " + mPath);
}
catch (IOException ex)
{
System.out.println("Error when writting to file: " + mPath);
}
}
}
正如我不知道有一些程序可以做同样的事情,但我希望将其添加为我的程序的功能。与其说是关于功能,不如说是关于学习如何制作一个这样的程序。
【问题讨论】: