java - 如何成功返回 mp3 文件的元数据,同时避免空指针异常

标签 java nullpointerexception metadata mp3

当我尝试运行获取元数据并从 mp3 文件中打印它的程序时,我在 project.mp3MetaData.main(musicdj.java: 18)”。对于此类,您需要 jid3lib jar。如何避免此异常?我是否需要通过底部的标签传递任何变量?

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());   


}

}

任何帮助将不胜感激。

最佳答案

您的 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());   
    }
}

关于java - 如何成功返回 mp3 文件的元数据,同时避免空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46260300/

相关文章:

.net - Windows 资源管理器在哪里存储文件元数据?

html - html 5 中的图片标签元标记

linux - 从多个视频中提取元数据

java - 写入 Parquet 文件时出现问题

java - 如何通过 jpa 注释确定嵌套对象列表的运行时获取类型(Eager/Lazy),

java - Eclipse Jetty 集成 start.ini

java - 在 mimemessage 中添加 "addinline"函数时出现 NullPointerException

java - Apache poi 单元格样式,带有颜色和右对齐

android - Activity 为空

java - 使用 mysql PrepareStatement 取消引用可能的空指针警告