Я пытаюсь использовать File, Clip и AudioInputStream для воспроизведения звука в моей программе на Java. Ранее я определил файл File, поток AudioInputStream и объекты Clip, которые сигналят и звенят. На моем компьютере с Windows программа работает без ошибок. Однако на моем ноутбуке Mac ошибки программы вызваны исключением NullPointerException объекта «clink» в следующем сегменте кода:
Код: Выделить всё
// Initialize Audio
try {
file = new File("honk.wav");
stream = AudioSystem.getAudioInputStream(file);
honk = AudioSystem.getClip();
file = new File("coin.wav");
stream = AudioSystem.getAudioInputStream(file);
clink = AudioSystem.getClip();
honk.open(stream);
clink.open(stream);
} catch (Exception e) {}
Вот какая ошибка:
Код: Выделить всё
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: Cannot invoke "javax.sound.sampled.Clip.stop()" because "this.clink" is null
Похоже, что любой объект, который инициализируется после инициализации этих объектов File, AudioInputStream и Clip, в конечном итоге имеет нулевое значение. Даже несвязанный объект созданного мной Конуса Класса становится нулевым, если его инициализировать после этого. Я понятия не имею, почему это так. Есть ли решение этой проблемы?
Спасибо.
Подробнее здесь:
https://stackoverflow.com/questions/784 ... d-variable