2010-10-13 17 views
11

Próbuję zakodować okno dialogowe błędu i chcę, aby wywoływał właściwy dźwięk określony przez system. Czy istnieje sposób uzyskania dostępu do dźwięków systemowych z języka Java (np. Dźwięk startowy, domyślny sygnał dźwiękowy, gwiazdka, zatrzymanie krytyczne itp.)?Dźwięki systemowe w Javie

Uwaga: wiem o java.awt.Toolkit.getDefaultToolkit().beep();

+0

Czy chcesz odtwarzać melodie za pomocą głośnika PC? Lub po prostu wydać sygnał dźwiękowy? Nie wiem, jak grasz melodie, ale na pewno chciałbym to wiedzieć. – Steven

+0

Wiem, jak odtwarzać pliki dźwiękowe, chcę wiedzieć, jak uzyskać dostęp do domyślnych dźwięków interfejsu OS – Supuhstar

Odpowiedz

15

Tu ya go (wyłącznie dla okien :)

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

więcej dźwięków dla Windows (wszystkie strony zawierają tę samą treść): Java 6, Java 7, Java 8. (Powodzenia ze znalezieniem dla innych systemów operacyjnych!)

3

Zakładam, że mówimy o oknach dźwięków systemowych? Mój komputer Mac nie ma "krytycznego zatrzymania" hałasu. ;-)

Musisz znaleźć właściwą ścieżkę systemu plików do tych plików dźwiękowych. Przypuszczam, że są pliki wav tak coś jak to powinno działać:

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

Plik może mieć ścieżkę takich jak:

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

UWAGA: Ten natychmiast powrócić chociaż dźwięk został „w kolejce” do urządzenia audio. Możesz zadzwonić pod numer stop(), jeśli chcesz go zatrzymać.

Jeśli chcesz zrobić coś bardziej wyjątkowego, spójrz na numer this Java forum. Oto kilka dokumentacji, która wyjaśnia, jak korzystać z audio system more directly.

+0

Miałem nadzieję na bardziej uniwersalne/wieloplatformowe podejście – Supuhstar

+0

A potem znajdź gdzieś pliki dźwiękowe i umieść je w swoim słoiku/wojna. Każdy system operacyjny ma bardzo różne dźwięki (lub żadne), a Java nie zapewnia, o ile mi wiadomo, standardowego mechanizmu ich wyzwalania. – Gray

+0

@Supuhstar Ja też, może dostarczę własne efekty dźwiękowe. – jamie