繁体   English   中英

如何搜索mp3文件的目录并按艺术家过滤结果?

[英]How to search a directory of mp3 files and filter results by artists ?

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

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

代码片段:

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++;
    }
}

看看Jaudiotagger

  • 支持MP3 ID3v1,ID3v11,ID3v2.2,v2.3和v2.4是透明的

您还可以尝试Java ID3标签库 ,它支持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();
    }
}

上面的代码在我的笔记本电脑上打印了“首席艺术家(ID3v2标签):石器时代的皇后”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM