2010-10-13 3 views
11

J'essaye de coder une boîte de dialogue d'erreur, et je veux qu'elle appelle le son spécifié par le système. Y a-t-il un moyen d'accéder aux sons du système à partir de Java (c'est-à-dire le son de démarrage, le bip par défaut, l'astérisque, l'arrêt critique, etc.)?Le système sonne en Java

Note: Je sais à propos java.awt.Toolkit.getDefaultToolkit().beep();

+0

Voulez-vous jouer des airs avec le PC Speaker? Ou juste provoquer un bip? Je ne sais pas comment tu joues des airs mais je voudrais bien savoir. – Steven

+0

Je sais comment lire les fichiers son, je veux savoir comment accéder à l'interface par défaut d'un OS sons – Supuhstar

Répondre

15

Here ya go (exclusivement pour windows :)

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

Plus de sons pour Windows (toutes les pages contiennent le même contenu): Java 6, Java 7, Java 8. (Bonne chance pour trouver d'autres OS!)

3

Je suppose que vous parlez de fenêtres sons système? Mon mac n'a pas de "stop critique". ;-)

Vous devez trouver le chemin d'accès correct au système de fichiers pour ces fichiers audio. Je suppose qu'ils sont des fichiers .wav donc quelque chose comme cela devrait fonctionner:

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

Le fichier peut avoir un chemin tel que:

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

NOTE: Ceci renvoie immédiatement bien que le son a été « mises en attente » à l'appareil audio. Vous pouvez appeler le stop() si vous avez besoin de l'arrêter.

Si vous avez besoin de faire quelque chose de plus spécial, jetez un oeil à this Java forum. Voici une documentation décrivant comment utiliser le audio system more directly.

+0

J'espérais une approche plus universelle/multi-plateforme – Supuhstar

+0

Oh, alors trouver les fichiers sonores quelque part et les inclure dans votre pot/guerre. Chaque système d'exploitation a des sons très différents (ou aucun) et Java, pour autant que je sache, ne fournit pas un mécanisme standard pour les déclencher. – Gray

+0

@Supuhstar Moi aussi, peut-être que je vais fournir mes propres effets sonores. – jamie

Questions connexes