为什么执行AudioSystem.getAudioInputStream时会出现nullpointerException?

问题描述 投票:0回答:1

我确定文件名正确!那么AudioSystem.getAudioInputStream中出了什么问题?

public class Main {

public static void main(String[] args) {
    public static Clip clip;
    AudioInputStream audioStream = null;
    try {
        //URL soundUrl = Main.class.getResource("D:/eclipse/workplace/AudioTestAPI/2.mp3");
        URL soundUrl = Main.class.getResource("D:/eclipse/workplace/AudioTestAPI/3.wav");
        audioStream = AudioSystem.getAudioInputStream(soundUrl);//42
        clip.open(audioStream);
    } catch(LineUnavailableException e) {
        e.printStackTrace();
    } catch(UnsupportedAudioFileException ex) {
        ex.printStackTrace();
    } catch(IOException eo) {
        eo.printStackTrace();
    }

    clip.start();

    do {
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } while(clip.isActive());
}

}

结果:

Exception in thread "main" java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:221)
at java.desktop/javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1032)
at Main.main(Main.java:42)
java java-11
1个回答
0
投票

java.lang.NullPointerException出现是因为您的变量soundUrlnull

尝试一下:

File file = new File("D:/eclipse/workplace/AudioTestAPI/3.wav");
audioStream = AudioSystem.getAudioInputStream(file);

让我知道我的建议之后发生了什么。

© www.soinside.com 2019 - 2024. All rights reserved.