首页 >Java >我可以在 macOS 上使用什么 Java 函数在适当的设备上以适当的音量播放适当的警报声音?

我可以在 macOS 上使用什么 Java 函数在适当的设备上以适当的音量播放适当的警报声音?

王林
王林转载
2024-02-22 12:40:20474浏览

php小编小新在java问答中,有读者提出了一个问题:“我可以在 macOS 上使用什么 Java 函数在适当的设备上以适当的音量播放适当的警报声音?”这个问题涉及到在macOS系统上使用Java来控制设备播放警报声音的功能,需要结合Java的音频处理库来实现,具体操作方法和函数调用可以通过深入学习相关的Java音频处理知识来解决。

问题内容

我希望我的 Java 应用程序在播放警报声音时遵循系统设置...中的 macOS 设置。 › 声音 › 音效

例如,只要有人按下 backspace 并且光标位于 jTextField 中最左侧的位置,程序就会播放用户配置的“警报声音”。

在我的应用程序的其他功能中也有类似的播放相同警报声音的需求。但我还没有找到一个库,可以让我的应用程序在适当的设备上以适当的音量播放系统适当的“警报声音”。

我希望我的应用程序遵循以下 macOS 系统设置:

  • 警报声音(声音名称)
  • 通过(设备名称)播放音效
  • 警报音量(滑块设置)

我该怎么做?

解决方法

我已经在 macos 上尝试过 Toolkit.beep,它似乎可以满足您的要求。我尚未验证 jtextfield 是否调用 toolkit.beep,但它似乎正在调用它。人们可以查看 openjdk 源代码,可能会有更好的想法。

在 windows 上,jtextfield 似乎使用默认蜂鸣声。还有 toolkit.beep。

只要默认的 toolkit 可以使用(适合我),您就可以将以下内容放置在您的应用中需要提醒用户的位置。

toolkit tk = toolkit.getdefaulttoolkit();
tk.beep();

这是我的 mcv 示例。

import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import javax.swing.*;

public class Alert extends JFrame {
   private Toolkit tk = Toolkit.getDefaultToolkit();
   public Alert () {
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JTextField tf = new JTextField();
      JButton bbeep = new JButton(new AbstractAction() {
         public void actionPerformed (ActionEvent e) {tk.beep();}
      });
      setLayout(new BorderLayout());
      getContentPane().add(tf, BorderLayout.NORTH);
      getContentPane().add(bbeep, BorderLayout.SOUTH);
      pack();
      setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() { new Alert(); }
      });
   }
}

以上是我可以在 macOS 上使用什么 Java 函数在适当的设备上以适当的音量播放适当的警报声音?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除