Системные звуки в Java

Я пытаюсь закодировать диалоговое окно с ошибкой, и я хочу, чтобы он вызывал правильный системный звук. Есть ли способ получить доступ к системным звукам из Java (т.е. Звук запуска, звуковой сигнал по умолчанию, звездочка, критическая остановка и т.д.)?

Примечание: Я знаю о java.awt.Toolkit.getDefaultToolkit().beep();

Ответ 1

Здесь ya go (исключительно для окон:)

final Runnable runnable =
     (Runnable) Toolkit.getDefaultToolkit().getDesktopProperty("win.sound.exclamation");
if (runnable != null) runnable.run();

Дополнительные звуки для Windows (все страницы содержат одно и то же содержимое): Java 6, Java 7, Java 8. (Удачи найти некоторые для других ОС!)

Ответ 2

Я предполагаю, что вы говорите о звуках системы Windows? У моего mac нет шума "критической остановки".; -)

Вам нужно будет найти правильный путь к этим звуковым файлам. Я предполагаю, что они wav файлы, поэтому что-то вроде этого должно работать:

new JavaSoundAudioClip(new FileInputStream(new File("/tmp/go.wav"))).play();

Файл может иметь такой путь, как:

C:\WINDOWS\MEDIA\Microsoft Office 2000\EXPLODE.WAV

ПРИМЕЧАНИЕ. Это немедленно вернется, хотя звук был "поставлен в очередь" на аудиоустройство. Вы можете позвонить stop(), если вам нужно его остановить.

Если вам нужно сделать что-то более специальное, посмотрите этот форум Java. Вот некоторая документация, которая раскрывает, как использовать аудиосистему более непосредственно.