16

我正在尝试编写一个错误对话框,我希望它调用正确的系统指定声音。有没有办法从 Java 访问系统声音(即启动声音、默认哔声、星号、紧急停止等)?

注:我知道java.awt.Toolkit.getDefaultToolkit().beep();

4

2 回答 2

25

给你(只适用于windows:)

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

Windows 的更多声音(所有页面包含相同的内容):Java 6Java 7Java 8。(祝你好运找到一些其他操作系统!)

于 2013-08-07T12:19:24.743 回答
3

我假设您在谈论Windows系统声音?我的 Mac 没有“临界停止”噪音。;-)

您需要找到这些声音文件的正确文件系统路径。我假设它们是 wav 文件,所以这样的东西应该可以工作:

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

该文件可能具有如下路径:

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

注意:尽管声音已“排队”到音频设备,但这将立即返回。stop()如果你需要停止它,你可以打电话。

如果您需要做一些更特别的事情,请查看这个 Java 论坛。这里有一些文档分解了如何更直接地使用音频系统

于 2010-10-13T22:48:34.870 回答