Файлы очевидно выходят, почему программа говорит мне, что это «Ложь»? - PullRequest
0 голосов
/ 12 апреля 2020

Очень странно! Я поместил три аудиофайла: audio1.wav, audio2.wav, audio3.wav и Test11. java в один каталог. Каждый из аудио файлов играет хорошо, когда я просто нажимаю на него в каталоге. Когда я выполняю Test11. java, помещая audio1.wav в качестве inputStream, audio1.wav (не настоящий audio1.wav; его содержимое на самом деле audio3.wav; еще одна странная вещь!) Воспроизводит и выводит «false», поскольку ни audio2, ни audio3 не существует. Но когда я помещаю в качестве inputStream либо audio2.wav, либо audio3.wav, ни одна из них не воспроизводится, также появляются ошибки «false java .lang.NullPointerException» и «java .lang.NullPointerException». Test11. java указан ниже:

import java.io.*;
import java.io.IOException;
import javax.sound.sampled.*;

class AudioTest {

    public void AudioPlay() {

        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();

        try{
          Clip clip = AudioSystem.getClip();
          File f = new File("audio3.wav"); //or alternatively "audio2.wav"
          System.out.print(f.exists());// It will print out "false" if the file is checked not 
                                          exiting.
          AudioInputStream inputStream = 
          AudioSystem.getAudioInputStream(classLoader.getResourceAsStream("audio2.wav"));

              clip.open(inputStream);
              clip.start();
              while (!clip.isRunning())
                  Thread.sleep(10);
              while (clip.isRunning())
                  Thread.sleep(10);
              clip.close();
            } catch (Exception e)
                {
                  e.printStackTrace(); 
                  System.out.println(e); 
                }
    } 
}

public class Test11 {

    public static void main(String[] args)  throws IOException
    {
        AudioTest au1 = new AudioTest();
        au1.AudioPlay();
    }

}

Ниже приведено сообщение об ошибке: false java .lang.NullPointerException java .lang.NullPointerException на com.sun.media.sound.SoftMidiAudioFileReader .getAudioInputStream (SoftMidiAudioFileReader. java: 134) в javax.sound.sampled.AudioSystem.getAudioInputStream (AudioSystem. java: 1113) в AudioTest.AudioPlay (Test11. java: 15) в Test11.main (Test11. java: 37)

...