如何使用 Java 在 PC 扬声器上发出噪音

Posted

技术标签:

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

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

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

【问题讨论】:

请注意,我有一台没有内置扬声器的新电脑。 @Jonathan S. - 我不知道这样的事情存在。是笔记本电脑吗? 如果您自己构建,您显然可以不连接扬声器,但我不知道任何不附带的。它们对于调试主板问题(哔声代码)等非常必要。 不,这是我制造的游戏 PC。我想如果我连接一个扬声器,它可能会有一个扬声器。但是我用的机箱没有,主板上也没有。如果这作为一种节省成本的措施变得越来越普遍,我不会感到惊讶,但我确实错过了最初几天的那些 POST 哔声...... ***.com/a/1932537/3651739查看这个答案 【参考方案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 答案。 这个问题还在于它会触发一个噪音,只是偏向声卡,这是我试图避免的,因为它可以连接到耳机,将音量调为零并且诸如此类。

以上是关于如何使用 Java 在 PC 扬声器上发出噪音的主要内容,如果未能解决你的问题,请参考以下文章

如何消除来自使用 iOS 中音频单元的套接字的音频中的噪音?

Arduino 扬声器发出长时间连续的噪音

用 Python 制造噪音

PC扬声器通过javascript发出哔哔声?

如何在网页中创建哔声?

在bash脚本/命令中,如何使PC发出蜂鸣声或播放声音文件?