2013-03-30 38 views
1

我試圖找出如何列出某個藝術家在我的電腦上播放的音樂。我知道如何列出目錄中的所有音樂,但我無法找到僅顯示其中一位音樂人的音樂的方法。以下是我用來列出目錄中所有音樂的代碼。如何搜索mp3文件的目錄並按藝術家篩選結果?

如何搜索元數據中的藝術家姓名並過濾這些文件?如果這不是列出文件的好方法,請隨時對代碼發表評論,我對這一切都很新穎。

的代碼片段:

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

這與'Java'有什麼關係?如果文件名包含藝術家名字,那麼實現你的搜索就很簡單了。如果不是,這是一個'mp3'文件是否包含這個信息的問題。你應該嘗試研究'mp3'格式是否包含這樣的元數據,然後提出編碼問題。 – Cratylus

回答

2

你也可以試試Java ID3 Tag Library,它支持ID3v 1,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標籤)的代碼:石器時代的皇后「在我的筆記本電腦上。

2

Jaudiotagger看看:

  • 支持MP3的ID3v1,ID3v11,ID3v2.2,V2.3和V2.4是透明
相關問題