java - 如何搜索 mp3 文件目录并按艺术家筛选结果?

标签 java directory mp3 metadata

我正在尝试了解如何列出某位艺术家在我的计算机上的音乐。我知道如何列出目录中的所有音乐,但我找不到只显示其中一位艺术家的音乐的方法。下面是我用来列出目录中所有音乐的代码。

如何搜索艺术家姓名的元数据并过滤这些文件?如果这不是列出文件的好方法,请随时评论代码,我对所有这些都很陌生。

代码片段:

File musicList = new File("C:\\Users\\Music");
String[] fileNames = musicList.list();
String songsResponse = "";

int number = 1;
for(int i = 0; i < fileNames.length; i++)
{
    if(fileNames[i].endsWith(".mp3"))
    {
        songsResponse += (number + ". ") + fileNames[i] + "\n";
        number++;
    }
}

最佳答案

你也可以试试 Java ID3 Tag Library ,它支持ID3v1、ID3v1.1、Lyrics3v1、Lyrics3v2、ID3v2.2、ID3v2.3和ID3v2.4标签以及读取MP3帧头:

private void printArtistFromMp3() {
    final String DIRECTORY = "C:\\Freek\\Dropbox\\Freek\\Muziek\\Queens of the Stone Age\\2000 - R\\";
    try {
        final MP3File mp3File = new MP3File(DIRECTORY + "01-Feel good hit of the summer.mp3");
        if (mp3File.hasID3v1Tag())
            System.out.println("Artist (ID3v1 tag): " + mp3File.getID3v1Tag().getArtist());
        if (mp3File.hasID3v2Tag())
            System.out.println("Lead artist (ID3v2 tag): " + mp3File.getID3v2Tag().getLeadArtist());
    } catch (IOException e) {
        e.printStackTrace();
    } catch (TagException e) {
        e.printStackTrace();
    }
}

上面的代码在我的笔记本电脑上打印了“Lead artist (ID3v2 tag): Queens of the Stone Age”。

关于java - 如何搜索 mp3 文件目录并按艺术家筛选结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15723791/

相关文章:

Java MP3Player 通过使用 Javazoom 播放和暂停

JavaFX MediaPlayer - 音乐在 10 秒后停止

java - 使用 Comboviewer 进行 JFace 数据绑定(bind)

java - 状态机工作流框架

java - 进度条对齐

c - 读取目录中的每个文件(unix/posix)

java - 正则表达式找不到整个字符串的匹配项

Java:如何读取目录文件夹,计算并显示文件数量并复制到另一个文件夹?

c++ - 为什么仅在读取 vector 中的文件名时将文件文件名设置为点而不是?

c# - 用 C# 中的新音频覆盖 mp4/wmv 视频的音频内容