0
Я сделал обратный отсчет, который работает, но я хочу, чтобы он воспроизводил звук, отсчет которого завершен. Моя проблема в том, что я получаю исключение NullPointerException, и я не знаю, как его решить. Вот код, без импорта:Воспроизведение .wav-файла при завершении подсчета
public class ReminderBeep {
Toolkit toolkit;
private String Path_to_sound = "sirenpolice5.wav";
public AudioClip audioclip;
Timer timer;
public ReminderBeep(int seconds) {
toolkit = Toolkit.getDefaultToolkit();
timer = new Timer();
timer.schedule(new RemindTask(), seconds * 1000);
}
class RemindTask extends TimerTask {
public void run() {
System.out.println("Time's up!");
try {
URL url = this.getClass().getClassLoader().getResource(Path_to_sound);
AudioInputStream audioIn = AudioSystem.getAudioInputStream(url);
Clip clip = AudioSystem.getClip();
clip.open(audioIn);
clip.start();
} catch (MalformedURLException murle) {
System.out.println(murle);
} catch (LineUnavailableException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (UnsupportedAudioFileException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.exit(0);
}
}
public static void main(String args[]) {
Scanner scan = new Scanner(System.in);
System.out.println("Welcome to countdown clock. Please type how many seconds you wanna count down from");
int sec = scan.nextInt();
new ReminderBeep(sec);
System.out.println("Counting");
}
}
Где происходит нулевой указатель? Я предполагаю переменную URL. Вы должны опубликовать трассировку стека. –
@MathieuFortin Устранила проблему, но она не воспроизводит звук. Программа работает нормально, но не воспроизводит звуковой файл – Bob