【问题标题】:How to make a noise on the PC speaker with Java如何使用 Java 在 PC 扬声器上发出噪音
【发布时间】:2008-11-06 18:02:59
【问题描述】:

我想在 Swing 应用程序中通过老式 PC 扬声器哔声(不是声卡)提醒用户某些事件,因为并非每台 PC 上都有一个带有连接扬声器的声卡,或者音量可能会调为零,或者可能连接了耳机...我该怎么做?

更新: java.awt.Toolkit.getDefaultToolkit().beep() 似乎通常会在声卡上产生声音。如果没有活动的声卡,它只会使用扬声器。 仅当应用程序在终端中启动时打印 ASCII 值 7 才有效,至少 Swing 应用程序通常不是这样。 所以这个问题仍然悬而未决。

【问题讨论】:

  • 请注意,我有一台没有内置扬声器的新电脑。
  • @Jonathan S. - 我不知道这样的事情存在。是笔记本电脑吗?
  • 如果您自己构建,您显然可以不连接扬声器,但我不知道任何不附带的。它们对于调试主板问题(哔声代码)等非常必要。
  • 不,这是我制造的游戏 PC。我想如果我连接一个扬声器,它可能会有一个扬声器。但是我用的机箱没有,主板上也没有。如果这作为一种节省成本的措施变得越来越普遍,我不会感到惊讶,但我确实错过了最初几天的那些 POST 哔声......

标签: java audio


【解决方案1】:

Toolkit.getDefaultToolkit().beep();

【讨论】:

  • 哔声无法按提问者的意图工作;它使用操作系统确定的错误声音。
【解决方案2】:

试试这个:

java.awt.Toolkit.getDefaultToolkit().beep();  

它对我有用,但我不确定这是 PC 扬声器的哔声还是某些操作系统生成的哔声。

【讨论】:

  • 也适用于 OS X。它会播放您的系统警报声。
  • 我很确定,在 Windows 上,如果您没有安装声卡/声卡驱动程序并且发生需要那种哔声的事情,系统扬声器会发出哔声。
  • 哔声无法按提问者的意图工作;它使用操作系统确定的错误声音。
【解决方案3】:

我在某处读到您需要使用 C/C++ dll 并将其与 JNI 连接,以使其正常工作,.. 链接处于脱机状态

好的,我找到了你要找的东西

http://pyx4j.com/pyx4j-native/index.html

他的 pyx4j-native 项目是一个 Java 包装器的集合,用于 Windows 功能,如时间和 beep。现在仅适用于 Windows。

NativeThreadDump - 向当前进程发送 CtrlBreak 事件

哔声 - 使用 PC 扬声器发出声音

FileUtil - 访问和修改文件创建时间。在 com.pyx4j.log.RollingFileAppender 中使用

NativeTimer - Java 5 之前使用的系统高分辨率性能计数器

【讨论】:

    【解决方案4】:

    除了哔声你可以试试 JFugue.

    JFugue 是一个开放源代码的 Java API,用于编程音乐,没有 MIDI 的复杂性。

    【讨论】:

    • 感谢您的回答,但是即使有声卡,JFugue 也能在 PC 扬声器上发出声音吗?如果不是,这不能回答问题。 ;-)
    【解决方案5】:

    ASCII 值 7 是哔哔声。所以只需打印那个字符。

    【讨论】:

    • 这可能会或可能不会工作,具体取决于应用程序的启动方式。如果它在普通终端之外启动,则 shell 不会解释打印。 Mmyers 解决方案更加灵活。
    【解决方案6】:
        {
         If (whatever you named the file) = true
         Then
         Process.Start ("C:\Windows\Media\{whatever you named the file})
         }
    

    我在 C# 中使用它。在人们抨击这篇文章之前,对我来说已经很晚了,代码并不完全准确。放置一个写入目录来命名文件夹并将其声明为默认位置。将您选择的声音移动到此文件夹,它将播放音频。在 Java 中设置计时器以每 2 秒循环一次声音以引起人们的注意。希望这对我学习自我有所帮助!

    【讨论】:

    • 你至少应该提到这是一个仅限 Windows 的答案,而不是一般的 Java 答案。
    • 这个问题还在于它会触发一个噪音,只是偏向声卡,这是我试图避免的,因为它可以连接到耳机,将音量调为零并且诸如此类。
    猜你喜欢
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2020-06-30
    • 1970-01-01
    • 2017-08-17
    • 2020-05-03
    • 2011-05-25
    相关资源
    最近更新 更多