我正在尝试编写错误对话框,我希望它能够调用正确的系统指定声音。有没有办法从Java访问系统声音(即启动声音,默认蜂鸣声,星号,关键停止等)?
注意:我知道java.awt.Toolkit.getDefaultToolkit().beep();
答案 0 :(得分:17)
这里你去(专门针对windows:)
final Runnable runnable =
(Runnable) Toolkit.getDefaultToolkit().getDesktopProperty("win.sound.exclamation");
if (runnable != null) runnable.run();
Windows的更多声音(所有网页包含相同的内容):Java 6,Java 7,Java 8。 (祝你好运为其他操作系统找到一些!)
答案 1 :(得分:3)
我假设您在谈论Windows系统声音?我的mac没有“关键停止”噪音。 ; - )
您需要找到这些声音文件的正确文件系统路径。我假设它们是wav文件,所以这样的东西应该可以工作:
new JavaSoundAudioClip(new FileInputStream(new File("/tmp/go.wav"))).play();
文件可能有以下路径:
C:\WINDOWS\MEDIA\Microsoft Office 2000\EXPLODE.WAV
注意:虽然声音已“排队”到音频设备,但会立即返回。如果您需要停止,可以致电stop()
。
如果您需要做一些更特别的事情,请查看this Java forum。这里有一些文档分解了如何使用audio system more directly。