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

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

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

2 ответов


вот так (исключительно для windows:)

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

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


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

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

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

файл может иметь путь, например:

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

Примечание: это вернется немедленно, хотя звук был "в очереди" на аудиоустройство. Вы можете позвонить stop() Если вам нужно остановить он.

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