2010-10-13 17 views
11

Sto provando a codificare una finestra di errore, e voglio che richiamino il suono corretto specificato dal sistema. Esiste un modo per accedere ai suoni di sistema da Java (ad esempio suono di avvio, segnale acustico predefinito, asterisco, arresto critico, ecc.)?Suoni di sistema in Java

Nota: so di java.awt.Toolkit.getDefaultToolkit().beep();

+0

Hai intenzione di suonare con l'altoparlante del PC? O solo provocare un segnale acustico? Non so come suoni la musica, ma sicuramente mi piacerebbe saperlo. – Steven

+0

So come riprodurre i file audio, voglio sapere come accedere ai suoni dell'interfaccia predefinita di un sistema operativo – Supuhstar

risposta

15

Qui ya go (esclusivamente per Windows :)

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

Ancora suoni per Windows (tutte le pagine contengono lo stesso contenuto): Java 6, Java 7, Java 8. (Buona fortuna a trovarne altri per altri sistemi operativi!)

3

Presumo che si sta parlando di Windows suoni di sistema? Il mio Mac non ha un rumore di "arresto critico". ;-)

Avrai bisogno di trovare il percorso corretto del file system per quei file audio. Presumo che sono file wav in modo da qualcosa come questo dovrebbe funzionare:

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

Il file potrebbe avere un percorso come ad esempio:

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

NOTA: Ciò restituirà immediatamente anche se il suono è stato "in coda" al dispositivo audio. Puoi chiamare stop() se devi fermarlo.

Se devi fare qualcosa di più speciale dai un'occhiata a this Java forum. Ecco alcuni documenti che spiegano come utilizzare il audio system more directly.

+0

Speravo in un approccio più universale/multipiattaforma – Supuhstar

+0

Oh, quindi trova i file audio da qualche parte e includili nel tuo contenitore/guerra. Ogni sistema operativo ha suoni molto diversi (o nessuno) e Java, per quanto ne so, non fornisce un meccanismo standard per attivarli. – Gray

+0

@Supuhstar Anch'io, forse fornirò i miei effetti sonori. – jamie

Problemi correlati