2017-09-17 61 views
1

當我嘗試運行採用元數據並從mp3文件打印它的程序時,返回的是「Exception in thread」main 「project.mp3MetaData.main(musicdj.java:18)」的java.lang.NullPointerException異常。對於這個類你需要jid3lib jar。如何避免此異常,並且是否需要通過底部標記傳遞任何變量?如何成功從mp3文件中返回元數據,同時避免出現空指針異常

package 1234; 

import java.io.File; 
import java.io.IOException; 

import org.farng.mp3.MP3File; 
import org.farng.mp3.TagException; 
import org.farng.mp3.id3.ID3v1; 

public class mp3MetaData { 

public static void main(String[] args) throws IOException, TagException { 

    // TODO Auto-generated method stub 
    File sourceFile = new  File("/Users/JohnSmith/Desktop/MusicTester/1234.mp3"); 
    MP3File mp3file = new MP3File(sourceFile); 
    ID3v1 tag = mp3file.getID3v1Tag(); 
    System.out.println(tag.getAlbum()); 
    System.out.println(tag.getAlbumTitle()); 
    System.out.println(tag.getTitle()); 
    System.out.println(tag.getComment()); 


} 

} 

任何幫助將不勝感激。

回答

1

您的MP3文件可能不包含ID3標記。因此,在使用之前,請檢查tag是否爲null。類似這樣的:

public static void main(String[] args) throws IOException, TagException 
{ 
    File sourceFile = new File("/Users/JohnSmith/Desktop/MusicTester/1234.mp3"); 
    final MP3File mp3file = new MP3File(sourceFile); 
    final ID3v1 tag = mp3file.getID3v1Tag(); 
    if (null == tag) 
    { 
     System.out.println("No ID3 tag found!"); 
    } 
    else 
    { 
     System.out.println(tag.getAlbum()); 
     System.out.println(tag.getAlbumTitle()); 
     System.out.println(tag.getTitle()); 
     System.out.println(tag.getComment()); 
    } 
} 
+0

謝謝!該文件不包含id3標籤,所以現在我不必處理錯誤。 –