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

我想在Swing应用程序中通过旧式PC扬声器提示某些事件提醒用户,因为并非每台PC上都有一个附带扬声器的声卡。 (至少在我的工作PC上没有发言者,有理由。:-)我该怎么做?

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

Toolkit.getDefaultToolkit().beep();

尝试这个:

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

它对我有用,虽然我不确定这是PC扬声器发出的蜂鸣声还是一些OS产生的蜂鸣声。

我在某处读到你需要使用C / C ++ dll并将其与JNI连接,以使其工作,…链接离线

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

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

pyx4j-native项目是一个用于Windows函数的java包装器的集合,如时间和哔哔声 。 现在只适用于Windows。

NativeThreadDump – 将CtrlBreak事件发送到当前进程

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

FileUtil – 访问和修改文件创建时间。 用于com.pyx4j.log.RollingFileAppender

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

除了哔哔声,你可以试试JFugue 。

JFugue是一个开源Java API,用于编写音乐而没有MIDI的复杂性。

ASCII值7是一声哔哔声。 所以只需打印那个角色。

  { If (whatever you named the file) = true Then Process.Start ("C:\Windows\Media\{whatever you named the file}) } 

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