2013-07-01 3 views
2

Как я могу генерировать различные звуковые сигналы для различных типов сообщений (например, Предупреждение, информация, вопрос) с помощью JOptionPane в java. Как и в ОС Windows, для каждого сообщения, которое появилось пользователю, есть разные звуковые сигналы. В настоящее время я использую следующее для генерации звукового сигнала, но каждый раз он подает звуковой сигнал.Как звучать для JOptionPane?

Toolkit.getDefaultToolkit().beep(); 
JJOptionPane.showMessageDialog(myFrame, "Message", "Title", JOptionPane.INFORMATION_MESSAGE); 

Я хочу другой звуковой сигнал для предупреждения, информационного сообщения и сообщения вопросов. Есть ли способ сделать это?

ответ

1

beep выдает запрос базовой операционной системе на выдачу звукового сигнала. На некоторых платформах, таких как Windows, воспроизводится «звук по умолчанию». там

AudioInputStream ais = 
    AudioSystem.getAudioInputStream(getClass().getResource("/information.wav")); 
Clip clip = AudioSystem.getClip(); 
clip.open(ais); 
clip.start();    
JOptionPane.showMessageDialog(...); 
clip.close(); 
+0

ли необходимость закрыть 'clip' и' ais' или нет:

Вместо того, чтобы пытаться взаимодействовать с конкретными платформами, то проще играть соответствующий звуковой файл перед отображением диалога , но я думаю, что он должен быть закрыт. Нужно ли поместить мой звук в ресурсы, но я хочу упаковать приложение позже, он будет работать нормально или нет? –

+0

Хм .. Кажется, что я должен вручную воспроизводить аудио в зависимости от типа сообщения. Но я хочу, чтобы я просто написал 'JOptionPane.shwMessageDialog (...);' и Java должен звучать для меня в зависимости от типа сообщения. Является ли это возможным? –

+0

Да, его хорошая практика - вызвать 'Clip # close', чтобы освободить все используемые ресурсы. Использование 'getResource' - это способ пойти esp, если вы упаковываете приложение. – Reimeus

Смежные вопросы