【问题标题】:System Sounds in JavaJava中的系统声音
【发布时间】:2011-04-25 02:01:47
【问题描述】:

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

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

【问题讨论】:

  • 您是想用 PC 扬声器播放音乐吗?还是只是发出哔哔声?我不知道你是怎么弹奏曲子的,但我很想知道。
  • 我知道如何播放声音文件,我想知道如何访问操作系统的默认界面声音

标签: java system-sounds


【解决方案1】:

给你(Windows 专用:)

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

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

【讨论】:

    【解决方案2】:

    我假设您在谈论 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 的文档。

    【讨论】:

    • 哦,然后在某处找到声音文件并将它们包含在您的 jar/war 中。每个操作系统都有非常不同的声音(或没有声音),据我所知,Java 没有提供触发它们的标准机制。
    • @Supuhstar 我也是,也许我会提供自己的音效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2011-07-25
    • 2010-11-18
    • 1970-01-01
    • 2015-05-03
    • 2012-09-07
    相关资源
    最近更新 更多