Java 已编辑的ID3标记未显示在windows资源管理器中
我正在编写一个程序,查看mp3文件并检查它是否有ID3数据。如果某些数据丢失,它将查询EchoNest音乐数据库以获取更多数据 我的问题是,当我更新ID3标签时,Windows资源管理器似乎无法识别它,即当文件位于“详细信息”视图中时,艺术家、标题、相册列为空白。 当我在文件上第二次运行我的程序时,我的程序会找到元数据,就像它在一个一开始包含所有数据的文件中一样 我使用的ID3标记库位于以下位置: 我有什么遗漏吗Java 已编辑的ID3标记未显示在windows资源管理器中,java,api,mp3,id3,Java,Api,Mp3,Id3,我正在编写一个程序,查看mp3文件并检查它是否有ID3数据。如果某些数据丢失,它将查询EchoNest音乐数据库以获取更多数据 我的问题是,当我更新ID3标签时,Windows资源管理器似乎无法识别它,即当文件位于“详细信息”视图中时,艺术家、标题、相册列为空白。 当我在文件上第二次运行我的程序时,我的程序会找到元数据,就像它在一个一开始包含所有数据的文件中一样 我使用的ID3标记库位于以下位置: 我有什么遗漏吗 public void writeData(boolean pForce) {
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);
}
}
}
作为一个不知道的人,我知道有一些程序可以做同样的事情,但我想把它作为我的程序的一个功能来添加。与其说是关于功能,不如说是关于学习如何制作一个能做到这一点的程序。您是否尝试过使用ID3v2标记,因为当我在windows中从音乐文件中读取该库的标记时,似乎只有v2有效。希望能有帮助 编辑: 如果这不起作用,我在另一个网站上发现了这个:图片与相册艺术作品有关
Mp3File song = new Mp3File(filename);
if (song.hasId3v2Tag()){
ID3v2 id3v2tag = song.getId3v2Tag();
byte[] imageData = id3v2tag.getAlbumImage();
//converting the bytes to an image
BufferedImage img = ImageIO.read(new ByteArrayInputStream(imageData));
}